更好的做法是在mysql数据库上使用默认日期'0000-00-00 00:00:00'或null
出于计算的原因,我已经阅读了最好使用默认日期'0000-00-00 00:00:00'
即.>小于约会的日期.
如果时间不明,也准时最好存储00:00或null
您应该使用,NULL因为0000-00-00 00:00:00不是有效日期。如果您使用moment.js或Carbon等库来管理日期,它们都知道如何处理 NULL日期。
MySQL 配置应始终设置为:
\n\nSET sql_mode = \'NO_ZERO_DATE\';\nRun Code Online (Sandbox Code Playgroud)\n\n除非您必须处理旧数据库。
\n\n也就是说,根据MySQL 文档:
\n\n\n\n\nMySQL 允许您将 \xe2\x80\x9czero\xe2\x80\x9d 值 \'0000-00-00\' 存储为 \xe2\x80\x9cdummy 日期。\xe2\x80\x9d 在某些情况下会出现这种情况比使用 NULL 值更方便,并且使用更少的数据和索引空间。要禁止“0000-00-00”,请启用 NO_ZERO_DATE 模式。
\n
如果您使用的是 Windows:
\n\n\n\n\n\xe2\x80\x9cZero\xe2\x80\x9d 通过 Connector/ODBC 使用的日期或时间值会自动转换为 NULL,因为 ODBC 无法处理此类值。
\n
另外需要考虑的一点是:零日期的真正含义是什么?
\n\n除非您的答案是第一个并且您需要与空日期进行比较,否则使用NULL值总是不会那么混乱。
MySQL 5.7 默认将 disallowing0000-00-00 00:00:00作为默认值,除非您设置sql_mode = ''. 看起来 MySQL 希望你使用它NULL作为默认值。
chi*_*ito -4
默认值应该为 NOT NULL 以支持所有日期时间操作。我还使用“0000-00-00 00:00:00”作为默认值。