mysql STR_TO_DATE无法使用

如题

在mysql中 STR_TO_DATE 函数是将字符串转化成时间的函数,这里不过多介绍。

问题

SELECT STR_TO_DATE( oct.date, ‘%Y年%c月’ ) as result FROM oct

在执行这条sql语句时,按照道理应该是会显示出 数据表中存储对应格式的 时间
如图:
数据表中数据
但是在 实际运行过后
得到结果为
执行结果
对照文档看了看,应该是没有问题,同样在另一台主机的数据库中测试,是可以显示的。
于是博主推测 可能是应为 sql_mode 的问题,应该前几天 博主动过这个 sql_mode
于是将 两个主机上的sql_mode 进行输出

SELECT @@sql_mode;

问题主机:
博主主机
正常主机:
正常主机

好了,到这找到差别就好办了, 查找mysql文档看 sql_mode 参数意义

mysql官方文档 : https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html

果然找到问题
mysql官方文档
所以,最后当然是

set @@sql_mode = ‘STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION’

或者在 my.ini 文件中长期更改

sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

问题解决

原创文章,转载标注

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值