我想将秒数存储为数据库中的整数。像这样:
1451425369
但我找不到合适的功能来做到这一点。 CURRENT_TIMESTAMP
,CURTIME()
,NOW()
和..会将其存储起来:
2014-11-11 12:45:34
应该注意,我不能访问类似PHP的东西,因为我想使用TRIGGER
来实现。所以我不能使用像time()
这样的东西。有什么想法吗?
答案 0 :(得分:4)
1451425369看起来像UNIX时间戳(2015-12-29 21:42 UTC)。 MySQL的TIMESTAMP
字段类型存储为UNIX时间戳,您可以通过执行以下操作来检索该基础时间戳值:
SELECT UNIX_TIMESTAMP(field_name) FROM table_name;
如果您需要当前的UNIX时间戳,UNIX_TIMESTAMP()
不带参数将为您提供当前的整数值。您可以在INSERT
/ UPDATE
中使用此功能而不会出现问题。
答案 1 :(得分:2)
听起来您正在使用MySQL数据库。如果你想要一个Unix时间戳,比如你提到的第一个整数值,你可以使用UNIX_TIMESTAMP()
。如果你想要今天的秒数,从凌晨0点开始,你可以存储(HOUR(CURTIME())*60*60)+(MINUTE(CURTIME())*60)+SECOND(CURTIME())
。
INSERT INTO ttestsec(Sec) VALUES((HOUR(CURTIME())*60*60)+(MINUTE(CURTIME())*60)+SECOND(CURTIME()));
答案 2 :(得分:1)
这已经在another post.中回答了下面的回复:
CREATE TABLE `abc` (
`pk` INT(10) NOT NULL AUTO_INCREMENT,
`id` VARCHAR(10) NULL DEFAULT NULL,
`timestamp` INT(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`pk`)
)
ENGINE=InnoDB;
INSERT INTO abc (id, timestamp) VALUES ('', UNIX_TIMESTAMP());
-- Wait a few seconds
INSERT INTO abc (id, timestamp) VALUES ('', UNIX_TIMESTAMP());
-- Wait a few seconds
INSERT INTO abc (id, timestamp) VALUES ('', UNIX_TIMESTAMP());