2012-05-30 138 views
-2

我有這樣的查詢表示爲一個字符串(其縮短,使其更易於閱讀):PHP - 在數據庫中插入日期會導致錯誤的日期格式?

$query = 'INSERT INTO mytable (ke_voucher_date) VALUES (\'%s\')'; 

現在,這是接下來我做的:

$query = vsprintf($query, array_map('mysql_real_escape_string', $params)); 
mysql_query($query); 

$ params爲一個數組保存所有在這種情況下應該保存的值(因爲它的縮寫)只有格式爲dd.mm.yyyy(21.04.2012)的日期。結果是21.04.2026例如。代碼有什麼問題,想法?也許%s?

謝謝!

+1

據我所知,MySQL需要YYYY-mm-dd格式。 – Corbin

+1

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-types.html - 你能解釋一下爲什麼你使用這種日期格式,你爲什麼期望它能工作? – hakre

回答

1

「21.04.2012」不是MySQL喜歡的格式。您應該始終將日期格式設置爲Y-m-d,例如2012-04-21

儘管MySQL嘗試解釋幾種格式的值,日期部分必須始終年 - 月 - 日順序給出(例如,'98 -09-04' ),而不是在月 - 日 - (例如,'09 -04-98','04 -09-98')的年度或日 - 月 - 年訂單。