00-00:00:00日期时间

4zcjmb1e  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(523)

我最近换了MySQL5.7,它在datetimes上引起了麻烦。我的数据库中有默认值为的datetimes 0000-00-00 00:00:00 . MySQL5.7似乎不喜欢这种默认值。我知道我可以 sql_mode = '' 但是假设我不想这样做(坚持默认的严格模式),那么最好的方法是什么呢?
我可以首先更新所有值:

UPDATE mycolumn SET field_datetime = NULL WHERE field_datetime='0000-00-00 00:00:00'

然后编辑datetime字段以使用null作为默认值。
这能证明未来吗?我认为MySQL5.7有其不允许的理由 0000-00-00 00:00:00 .

t0ybt7op

t0ybt7op1#

NULL 作为一个值,任何空字段都是经得起未来考验的,而且相当合理。您的应用程序代码将需要进行测试,以确保它能够处理 NULL 正确地。
接受 0000-00-00 00:00:00 因为多年前,mysql开发人员对validdatetime的选择很差,只涉及问题,而不是解决问题。对sql的要求越来越严格似乎是mysql正在慢慢采取的方法,即使应用程序开发人员需要更新他们的结构和代码以使其更加正确(可能还需要修复隐藏的bug)。

相关问题