我有一个时间创建的字段,我需要填充时间...但我想为每个后续条目自动增加一秒钟的时间,以便没有任何时间是相同的...时间本身并不重要,我只是不希望它们中的任何一个是相同的。
表:备注
专栏:时间创造
我基本上只想拥有:
创建时间:12:00:01
创建时间:12:00:02
等等......再次感谢你们!
[编辑]
全桌结构:
表:备注
栏目:NO-ID(关键),objectid,partnerid,note,datecreated,timecreated,datemodified
答案 0 :(得分:2)
好的,因为NO-ID
(列的奇怪名称,但这不是重点)是AUTO_INCREMENT
,您只需将其值(根据定义唯一)添加到基本UNIX时间戳。在过去,您将希望启动远远不会耗尽值,但如果您有数百万行,那么这只是一个问题。
所以从2012-01-01 00:00:00
开始,例如:
SELECT UNIX_TIMESTAMP('2012-01-01 00:00:00');
+---------------------------------------+
| UNIX_TIMESTAMP('2012-01-01 00:00:00') |
+---------------------------------------+
| 1325397600 |
+---------------------------------------+
更新将主键值添加到该基本时间戳的所有行:
UPDATE `notes` SET `timecreated` = FROM_UNIXTIME(1325397600 + `NO-ID`);
如果您删除了行,它们将不是连续的秒数,但它们仍然是唯一的。
你甚至没有 从基本时间戳开始。您可以从0开始,即1970年1月1日加上或减去服务器的时区。
UPDATE `notes` SET `timecreated` = FROM_UNIXTIME(`NO-ID`);
产生时间戳,如
1970-01-01 00:00:01
1970-01-01 00:00:02
1970-01-01 00:00:03
1970-01-01 00:00:04
...
要将datecreated
字段增加一天,请使用相同的模式,但使用DATE_ADD()
:
UPDATE `notes` SET `datecreated` = DATE_ADD('2012-01-01', INTERVAL `NO-ID` DAY)
但请谨慎使用,从开始日期开始的几天比用完几秒钟要容易多了......