旧版本的 MySQL 是不是允许不同的日期格式?

Posted

技术标签:

【中文标题】旧版本的 MySQL 是不是允许不同的日期格式?【英文标题】:Did older versions of MySQL allow different date formats?旧版本的 MySQL 是否允许不同的日期格式? 【发布时间】:2019-07-12 04:07:58 【问题描述】:

所以我有一些 C# 程序在几台连接到服务器的计算机上运行,​​以从旧版本的 mysql 5.6.15 访问数据库。我正在尝试用现在在 5.7.24 版本上运行更新的 MySQL 的新机器替换服务器,但是在导入数据库后,我注意到我的所有程序都因修改日期的插入或更新查询而崩溃列。

经过测试,我发现程序使用日期格式为“2019-02-18 00:00:00Z”的查询,这曾经在我的旧 MySQL 安装中工作,但给我一个“#1292 - 日期值不正确: '2019-02-18 00:00:00Z' for column 'checkin' at row 1" 当我尝试在新的 MySQL 版本中操作时出现错误。如果我删除日期字符串末尾的 Z 查询会像预期的那样正常,我可以更改我所有程序中的所有查询来修复问题,但我认为如果可以通过更改某些内容来解决这个问题会更好而是数据库。

我不知道新版本是否可能不再允许这种日期,或者它是否与 my.ini 中的某些配置问题有关。我检查了旧的 my.ini,但没有看到任何与日期格式相关的内容,新的在 sql-mode 行中有一些关于日期格式的内容,但评论该行并不能解决问题。

Here is my MySQL configuration file in case that it's necessary:

https://pastebin.com/ndqnZwka

提前感谢您的宝贵时间。

【问题讨论】:

【参考方案1】:

刚刚解决了这个问题,我认为即使我注释了 sql-mode 行,新的 MySQL 服务器也在严格模式下运行,或者我之前测试时犯了一个错误,无论哪种方式都可以更改

sql-mode=""

在 my.ini 中足以消除错误。

【讨论】:

以上是关于旧版本的 MySQL 是不是允许不同的日期格式?的主要内容,如果未能解决你的问题,请参考以下文章

CSV 日期格式转 MySQL 日期格式

如何替换EXCEL中日期的格式

用零存储日期(无效的日期时间格式)

如何在R中将多个日期格式格式化为一个?

C语言中怎么判断输入日期格式是不是正确,要求输入的格式为年-月-日,如1995-12-06

MySql 5.7 版本不允许在日期时间字段中插入完整日期*