我想将当前时间(例如00:30)存储在我的一个列中,默认CURRENT_TIMESTAMP
给出了我不想要的日期和时间。
或者有没有办法只从CURRENT_TIMESTAMP
??
答案 0 :(得分:1)
答案 1 :(得分:1)
您可以使用MySQL的内置TIME()
函数来提取日期时间表达式的时间部分。例如:
mysql> select time(now());
+-------------+
| time(now()) |
+-------------+
| 18:21:38 |
+-------------+
1 row in set (0.03 sec)
由于CURRENT_TIMESTAMP
是NOW()
的同义词,因此您只需使用TIME(CURRENT_TIMESTAMP)
。
答案 2 :(得分:0)
创建表格时,将列类型设置为TIME
答案 3 :(得分:0)
如果我理解你的问题,我认为你有一个时间戳列,其默认值为CURRENT_TIMESTAMP:
CREATE TABLE yourTable (
...,
...,
currentTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
如果您只想存储当前时间而不是日期部分,可以使用TIME列和触发器,它将自动插入时间部分:
CREATE TABLE tableName (
...,
...,
currentTime TIME
);
CREATE TRIGGER currentTime BEFORE INSERT ON tableName
FOR EACH ROW
SET new.currentTime = TIME(NOW());
(例如here),您可能还想使用UPDATE触发器。或者您可以使用CURRENT_TIMESTAMP,并仅获取具有TIME函数的时间部分:
SELECT TIME(yourTimestampColumn)
FROM yourTable