我在数据库中有一个类型为datetime
的列。每次用户更改内容时都会更新,以注意用户在此日期/时间更改了网站上的内容。
我正在使用的查询是:
INSERT INTO Test(bunch columns, ChangedAt) VALUES (bunch values, NOW())
现在,经过几天我检查了表格,ChangedAt
列中有一行具有此值:
2020-11-14 00:00:00
任何想法如何得到2020
?以及time
00:00:00
感谢
答案 0 :(得分:0)
只有两个可能的原因 计算机日期是错误的...这将是一个巧合得到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在你的情况下......