2012-05-30 112 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')的年度或日 - 月 - 年订单。