CREATE TABLE test_random_time ( id int, newstime datetime)INSERT INTO test_random_timeSELECT 1, '2012-11-13 01:00:00' UNION ALLSELECT 2, '2012-11-13 02:00:00' UNION ALLSELECT 3, '2012-11-13 03:00:00' UNION ALLSELECT 4, '2012-11-13 04:00:00' UNION ALLSELECT 5, '2012-11-13 05:00:00' -- 20点至23点。-- 区间=3小时=180分钟=10800秒-- 下面更新时间 = '2012-11-13 20:00:00' 之后的 随机秒数。(区间在 1- 10800 之间)UPDATE test_random_timeSET newstime = DATE_ADD('2012-11-13 20:00:00', INTERVAL FLOOR(1 + (RAND() * 10800)) SECOND )WHERE DATE(newstime) = '2012-11-13' --
数据核对.mysql>SELECT * FROM test_random_time+------+---------------------+| id | newstime|+------+---------------------+|1 | 2012-11-13 22:25:14 ||2 | 2012-11-13 22:41:16 ||3 | 2012-11-13 20:10:35 ||4 | 2012-11-13 21:49:08 ||5 | 2012-11-13 22:33:55 |+------+---------------------+5 rows in set (0.00 sec)
方法一:
如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数
truncate
table
表名
方法二:
dbcc
checkident
('table_name',
reseed,
new_reseed_value)
当前值设置为
new_reseed_value。如果自创建表后没有将行插入该表,则在执行
dbcc
checkident
后插入的第一行将使用
new_reseed_value
作为标识。否则,下一个插入的行将使用
new_reseed_value
+
1。如果
new_reseed_value
的值小于标识列中的最大值,以后引用该表时将产生
2627
号错误信息。
方法二不会清空已有数据, *** 作比较灵活,不仅可以将自增值归零,也适用于删除大量连续行后,重新设置自增值并插入新的数据;或从新的值开始,当然不能和已有的冲突。
$sql="delete
from
$table_vote"
mysql_query($sql,
$link)
$sql="alter
table
$table_vote
auto_increment=1"
mysql_query($sql,
$link)
评论列表(0条)