如何在数据库中存储秒数?

时间:2015-12-29 21:51:12

标签: mysql time

我想将秒数存储为数据库中的整数。像这样:

1451425369

但我找不到合适的功能来做到这一点。 CURRENT_TIMESTAMPCURTIME()NOW()和..会将其存储起来:

2014-11-11 12:45:34

应该注意,我不能访问类似PHP的东西,因为我想使用TRIGGER来实现。所以我不能使用像time()这样的东西。有什么想法吗?

3 个答案:

答案 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());
相关问题