0

我想将当前时间(例如 00:30)存储在我的专栏之一中,默认CURRENT_TIMESTAMP提供我不想要的日期和时间。

或者有什么方法可以只从CURRENT_TIMESTAMP??中检索时间?

4

4 回答 4

1

尝试结合TIME()NOW()

SELECT TIME(NOW());

输出:15:20:31

当然,您的列需要是“ TIME ”类型。

于 2013-09-18T22:21:13.673 回答
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).

于 2013-09-18T22:22:21.497 回答
0

创建表时,将列类型设置为TIME

于 2013-09-18T22:22:01.080 回答
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());

(这里有一个例子)并且您可能还想使用 UPDATE 触发器。或者您可以只使用 CURRENT_TIMESTAMP,并仅使用 TIME 函数获取时间部分:

SELECT TIME(yourTimestampColumn)
FROM yourTable
于 2013-09-18T22:24:19.847 回答