我在数据库中有一列,其类型为 datetime
。每次用户更改某些内容时,都会更新以注意用户在此日期/时间更改了网站上的某些内容。
im 使用的查询是:
INSERT INTO Test(bunch columns, ChangedAt) VALUES (bunch values, NOW())
几天后,我检查了表格,其中一行的ChangedAt
列具有此值:
2020-11-14 00:00:00
有没有想到它到底是怎么2020
的? 以及为什么会有time
00:00:00
谢谢
只有 2 个可能的原因。
电脑日期错误... 获得 00:00:00 将是巧合
或者该行是这样更新/插入的。
MySQL识别以下格式的DATETIME和TIMESTAMP值:
作为"YYYY-MM-DD HH:MM:SS"或"YY-MM-DD HH:MM:SS"中的字符串 格式。这里也允许使用"宽松"的语法:任何标点符号 字符可用作日期部分或时间之间的分隔符 部件。例如,'2012-12-31 11:30:45', '2012^12^31 11+30+45', '2012/12/31 11*30*45' 和 '2012@12@31 11^30^45' 是等效的。
作为在"YYYYMMDDHHMMSS"或 "YYMMDDHHMMSS"格式,前提是字符串作为日期有意义。 例如,"20070523091528"和"070523091528"被解释为 '2007-05-23 09:15:28',但"071122129015"是非法的(它有一个 无意义的分钟部分)并变为"0000-00-00 00:00:00"。
作为 YYYYMMDDHHMMSS 或 YYMMDDHHMMSS 格式的数字,提供 该数字作为日期有意义。例如,19830905132800和 830905132800解释为 '1983-09-05 13:28:00'
如您所见.. 很难错误地插入不同的值并插入它......20201114000000在你的情况下...