我正在查看MySQL文档(here和here),想知道是否有必要ALLOW_INVALID_DATES
输入数据类型{{1}的过去和将来的日期}?
文档中有这句话:
ALLOW_INVALID_DATES
不对日期进行全面检查。仅检查月份是否在1到12的范围内,以及日期在1到31的范围内。这对于在三个不同字段中获取年,月和日并准确存储用户内容的Web应用程序可能很有用。已插入,没有日期验证。此模式适用于DATE和DATETIME列。它不适用于始终需要有效日期的TIMESTAMP列。
在启用ALLOW_INVALID_DATES的情况下,服务器要求合法的月和日值,而不仅仅是分别在1到12和1到31的范围内。禁用严格模式后,无效日期(例如“ 2004-04-31”)将转换为“ 0000-00-00”并生成警告。启用严格模式后,无效日期会产生错误。要允许这样的日期,请启用ALLOW_INVALID_DATES。
因此,如果DATE
被禁用,不是当前日期(过去和将来的日期)的日期会被转换为'0000-00-00'吗?
还是意味着填充的月份和日期(ALLOW_INVALID_DATES
或2018-01-12
等)将被转换?
还是仅使用完全无效的日期,例如2018-11-01
或2018-13-01
?