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

时间:2010-03-13 03:02:38

标签: mysql date

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

我会在mySQL上使用什么函数来执行此操作?

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

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

参考

MAKEDATE(year,dayofyear)

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

3 个答案:

答案 0 :(得分:10)

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

UPDATE table SET my_date = '2009-12-31';

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

答案 1 :(得分:5)

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

SELECT'1900-01-01' + INTERVAL y-1900 YEAR + INTERVAL m-1 MONTH + INTERVAL d-1
DAY FROM ...

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

答案 2 :(得分:2)

我希望这会成功..

str_to_date( concat( year( curdate( ) ) , '-', month( a.dob ) , '-', day( a.dob ) ) , '%Y-%m-%d' ) 

其中a.dob是我的列名,有DATE