2010-03-13 190 views
7

我有三列y,m和d(年,月,日),并且希望将它作为日期进行存储。MYSQL:我如何设置一个日期(makedate?)与月,日,年

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

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

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

参考

MAKEDATE(year,dayofyear)

返回日期,某一年和一天的年值。 dayofyear必须大于0或结果为NULL。

回答

8

我相信你可以在适当的格式使用字符串:

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

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

5

这是不高的可读性,但下面将工作:

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

不知道这比任何使用CONCAT和STR_TO_DATE更高效。

1

我希望这港岛线工作了..

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

哪里a.dob是具有DATE

我的专栏的名字
相关问题