2010-03-13 189 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

我的專欄的名字
相關問題