好的,可能会在某个地方询问,但我无法通过Google或SO找到它,
我的查询是
INSERT INTO Tracking (OrderNum, PickupDate, ...) VALUES (95370,10/01/2013, .....)
板块表格是一个更新MS-Access db ...的PHP脚本,目标列pickupDate
是访问数据库中的日期/时间数据类型..
当我运行此查询时,插入数据库中的信息不是 10/01/2013
,而是长数字,如34444444299384(类似的东西,并没有完全注意到这一点).. < / p>
但是当我使用以下查询时
INSERT INTO Tracking (OrderNum, PickupDate, ...) VALUES (95370,'10/01/2013', .....)
因此,据我所知, qoutes之间的任何内容都是STRING
"10/01/2013"
的结果有所不同?有人可以向我解释一下吗?
感谢你的指导..
答案 0 :(得分:4)
使用时:
10/01/2013
它是一个表达式:10除以1除以2013,得到结果:0,0049677
...然后转换为日期,因为日期实际上是数字。
使用时:
'10/01/2013'
这是一个字符串,可以转换为日期。
在内部,日期存储为数字,而不是字符串。
答案 1 :(得分:4)
我的猜测是10/01/2013
被解释为除法运算,因此得到的数字是一个小的浮点数:
0.00496770988
从那里开始,MySQL可能会假设你为它提供了一个UNIX时间戳,并且它试图将其转换为可存储的日期,从而破坏了该数字。
你要做的是给MySQL更喜欢的格式YYYY-MM-DD
并引用它:
'2013-10-01'
答案 2 :(得分:0)
如果您使用DATE
作为列类型,则输入错误。 MySQL期望'2013-10-01'
,而不是'10/01/2013'
。请参阅the manual。