我想将当前时间(例如 00:30)存储在我的专栏之一中,默认CURRENT_TIMESTAMP
提供我不想要的日期和时间。
或者有什么方法可以只从CURRENT_TIMESTAMP
??中检索时间?
您可以使用 MySQL 的内置TIME()
函数来提取日期时间表达式的时间部分。例如:
mysql> select time(now());
+-------------+
| time(now()) |
+-------------+
| 18:21:38 |
+-------------+
1 row in set (0.03 sec)
由于CURRENT_TIMESTAMP
是 的同义词NOW()
,您可以只使用TIME(CURRENT_TIMESTAMP)
.
创建表时,将列类型设置为TIME
如果我正确理解您的问题,我认为您有一个默认值为 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());
(这里有一个例子)并且您可能还想使用 UPDATE 触发器。或者您可以只使用 CURRENT_TIMESTAMP,并仅使用 TIME 函数获取时间部分:
SELECT TIME(yourTimestampColumn)
FROM yourTable