MYSQL:如何设置月,日和年的日期(makedate?)

cho*_*man 8 mysql date

我有三列,y,m和d(年,月和日),并希望将其存储为日期.

我会在mySQL上用什么函数来做这个?

显然makedate使用年份和年份(见下文),但我有月份.

我知道我可以使用STR_TO_DATE(str,format),通过从(y,m,d)构造字符串,但我猜有更简单的方法.

参考

MAKEDATE(年,DAYOFYEAR)

返回给定年份和年份值的日期.dayofyear必须大于0或结果为NULL.

Kal*_*see 10

我相信你可以使用正确格式的字符串:

UPDATE table SET my_date = '2009-12-31';
Run Code Online (Sandbox Code Playgroud)

编辑:是的,你可以,只是在MySQL 5.1中验证它.


小智 5

它的可读性不高,但以下方法可行:

SELECT'1900-01-01' + INTERVAL y-1900 YEAR + INTERVAL m-1 MONTH + INTERVAL d-1
DAY FROM ...
Run Code Online (Sandbox Code Playgroud)

不确定这比使用CONCAT和STR_TO_DATE更有效.