我尝试在 sql 命令中运行下面的代码,但是代码行start_date date DEFAULT CURRENT_DATE
有问题,不知道为什么。我只需要约会。
但如果我把它替换为start_date datetime DEFAULT CURRENT_TIMESTAMP
SQL 将运行,但我的想法是我只需要存储日期而不是日期时间。
如何在不使用时间戳且后者仅转换为日期的情况下执行此操作?
CREATE TABLE advertisement (
id int not null AUTO_INCREMENT,
PRIMARY KEY(id),
summary text DEFAULT null,
featured_image varchar(50) DEFAULT null,
start_date date DEFAULT CURRENT_DATE,
end_date date not null,
link text DEFAULT null,
added_date datetime DEFAULT CURRENT_TIMESTAMP,
updated_date datetime ON UPDATE CURRENT_TIMESTAMP
)
The 文档很明显这适用于datetime
列但不是date
列:
例如,这意味着您无法设置日期的默认值
列是函数的值,例如NOW()
or CURRENT_DATE
。
例外情况是您可以指定CURRENT_TIMESTAMP
作为默认值
为了TIMESTAMP
and DATETIME
列。
如果您确实决定忽略时间部分,则必须使用触发器来设置值,而不是使用触发器default
约束。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)