在NULL数据库中使用默认日期“0000-00-00:00:00”或“MySQL”是更好的做法吗?
由于计算的原因,我认为最好使用默认日期“0000-00-00:00:00”。
也就是说,>比日期短于日期。
如果不知道时间,最好按时存储00:00或NULL。
发布于 2012-09-18 18:25:35
为了支持所有的日期时间操作,默认值应该不是NULL。我还使用"0000-00-00 : 00:00:00“作为默认值。
发布于 2018-09-17 21:08:46
MySQL 5.7默认不允许0000-00-00 00:00:00作为默认值,除非您设置了sql_mode = ''。MySQL似乎希望您使用NULL作为默认值。
发布于 2019-03-26 13:47:09
您应该使用NULL,因为0000-00-00 00:00:00不是有效的日期。如果您使用moment.js或碳之类的库来管理日期,它们都知道如何处理NULL日期。
MySQL配置应始终设置为:
SET sql_mode = 'NO_ZERO_DATE';除非你必须处理一个旧的数据库。
尽管如此,根据MySQL文档的说法:
MySQL允许您将“零”值“0000-00-00”存储为“虚拟日期”。在某些情况下,这比使用空值更方便,并且使用更少的数据和索引空间。若要不允许“0000-00-00”,请启用NO_ZERO_DATE模式。
如果您在Windows上:
通过连接器/ ODBC使用的“零”日期或时间值将自动转换为NULL,因为ODBC无法处理这些值。
另一个要考虑的问题是:零日期的真正含义是什么?
除非您的答案是第一个,并且需要使用空日期进行比较,否则使用NULL值总是不那么容易混淆。
https://stackoverflow.com/questions/12482560
复制相似问题