我想创建一个包含当年 PK 列的表
CREATE TABLE IF NOT EXISTS `example` (
`yearId` YEAR NOT NULL DEFAULT year(curdate()),
PRIMARY KEY (`yearId`))
ENGINE = InnoDB
但这是不正确的。
我知道我可以保存 CURRENT_TIMESTAMP
CREATE TABLE IF NOT EXISTS `example` (
`yearId` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`yearId`))
ENGINE = InnoDB
但我只想要年份。 有什么办法吗?
最佳答案
只需调用 YEAR()
函数并将该值传递给它。
CREATE TABLE IF NOT EXISTS `example` (
`yearId` TIMESTAMP NOT NULL DEFAULT YEAR(CURRENT_TIMESTAMP),
PRIMARY KEY (`yearId`))
ENGINE = InnoDB
Click here获取更多日期和时间函数。
附言您应该将该列的数据类型设置为 <a href="http://dev.mysql.com/doc/refman/5.7/en/year.html" rel="noreferrer noopener nofollow">YEAR(4)</a>
以确保只输入一年的有效值。
关于Mysql YEAR 如何设置当前年份为默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27373655/