0

我在数据库中有一个类型为datetime. 每次用户更改某些内容时,都会更新以说明用户在此日期/时间更改了网站上的某些内容。

我使用的查询是:

INSERT INTO Test(bunch columns, ChangedAt)  VALUES (bunch values, NOW())

几天后,我检查了表格,其中一行具有该ChangedAt列的值:

2020-11-14 00:00:00

知道它是怎么来的2020吗?以及为什么有time 00:00:00

谢谢

4

1 回答 1

0

只有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 在您的情况下...

于 2013-02-01T22:51:37.823 回答