如何在MySQL Workbench中为DateTime列设置默认值?

3

我有一个名为CreatedDate的列,我想为该列设置以下格式的默认值:

默认值:- yyyy-mm-dd 00:00:00.000

我尝试了多种解决方案,如使用DATETIME数据类型、TIMESTAMP等,但它们都不能接受默认值。

请问有人可以分享一下您的想法吗?

谢谢!


1
你误解了:数据库中的日期/时间值没有“格式”-只有在将它们的值显示给用户时才适用于屏幕上的格式。 - Dai
你为什么想要设置日期格式呢?我的意思是,你可以在查询中或使用数据库的应用程序中进行日期格式化。 - CodeSun
1
@CodeSun 实际上,我想将此值(2017-06-28 hh:mm:ss,000)设置为CreatedDate列的默认值。 我需要这样做是因为我们已从SQL迁移到MySQL,并且在SQL中,该列的默认值为相同的值。 - S.Sehgal
2个回答

2

如果您使用毫秒精度定义列,则所显示的格式是默认的日期时间格式。

演示:

mysql> create table mytable (id serial primary key, ts datetime(3));
Query OK, 0 rows affected (0.01 sec)

mysql> insert into mytable set ts = now();
Query OK, 1 row affected (0.01 sec)

mysql> select * from mytable;
+----+-------------------------+
| id | ts                      |
+----+-------------------------+
|  1 | 2023-03-06 09:15:34.000 |
+----+-------------------------+

无法更改日期时间的默认格式。日期时间不是以字符串形式存储的,而是以二进制值存储的。您必须使用DATE_FORMAT()函数来显示不同的格式。


1

如果您只想将默认值设置为特定的硬编码值,可以使用以下方法

ALTER TABLE tableName ALTER CreatedDate SET DEFAULT "2017-06-28 00:00:00.000";

查看ALTER TABLE语句文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接