如何更改默认CURRENT_TIMESTAMP格式

0 投票
1 回答
3007 浏览
提问于 2025-04-18 15:02

目前我正在使用以下代码在MySQL中创建一个表。

CREATE TABLE example(id INT, ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP); 这样每当我往这个表里插入数据时,ts的值就会以(年份-月份-日期 小时-分钟-秒)格式显示。我想把这个格式改成(日期-月份-年份 小时-分钟-秒)。假设我用以下代码往刚创建的表里插入数据:

insert into example (id) values (123); 当我用下面的代码来获取信息时:

select * from example; +------+---------------------+
| id | ts |
+------+---------------------+
| 123 | 2014-07-28 17:17:10 |
+------+---------------------+

我得到的日期时间格式是2014-07-28 17:17:10,我想把它改成28-07-2014 17:17:10。请问可以改变时间戳的格式吗?如果可以的话,应该怎么做呢?

1 个回答

5

你应该格式化时间戳的输出,比如:

SELECT id, DATE_FORMAT(ts, '%d-%m-%Y %H:%i:%s') FROM example

这里有几点你需要明白的。TIMESTAMP 数据类型有一个明确的内部格式。这个内部格式的设计是为了让 MySQL 能够轻松地搜索和处理它。(如果你感兴趣的话,它是 UNIX/Linux 中 time_t 数据类型的一种变体。)你不能改变这个格式。

当你请求 MySQL 显示一个时间戳时,它会用你问题中提到的默认格式来展示。你可以做的是对它进行格式化,以便更好地显示,就像这个答案中的例子所演示的那样。

撰写回答