我有三列y,m和d(年,月和日),并希望将其存储为日期。
我会在mySQL上使用什么函数来执行此操作?
显然makedate使用年份和年份(见下文),但我有月份。
我知道我可以使用STR_TO_DATE(str,format),通过从(y,m,d)构造字符串,但我猜有更简单的方法。
参考
返回给定年份和年份值的日期。 dayofyear必须大于0或结果为NULL。
答案 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