mariadb SIMPLE SQL查询返回截断的不正确的DOUBLE值

w3nuxt5m  于 2022-11-08  发布在  其他
关注(0)|答案(1)|浏览(95)

下午好,我已经在互联网上搜索了几个小时关于这个错误信息,我在MariaDB中收到,还没有找到答案。我试图添加另一个日期到一个varchar(255)列,它不断返回
Truncated incorrect DOUBLE value: '2022-10-14'
我一直在使用的sql查询是
UPDATE communities SET lastvisited = '2022-10-14' + lastvisited WHERE id = 26;
这是我正在做的一个非常简单的查询,我没有使用ANDON,所以非常困惑为什么它一直返回该消息。谢谢

bqf10yzr

bqf10yzr1#

+是一个算术运算符。这意味着,算术运算的所有部分都将在执行运算之前转换为int或double:
如果指定字符串,它应该可以转换为双精度或整数-如果有特殊字符,它将被截断,并将引发警告:
“2022-10-14”是一个字符串,它不是一个算术运算,结果为2022 - 10 - 14 = 1998。因此,将“2022-10-14”转换为数字将始终得到2022,因为数字中的-是无效的:

select CAST("2022-10-14" as INTEGER)
+-------------------------------+
| cast("2022-10-14" as integer) |
+-------------------------------+
|                          2022 |
+-------------------------------+
1 row in set, 1 warning (0,001 sec)

show warnings;
+---------+------+-------------------------------------------------+
| Level   | Code | Message                                         |
+---------+------+-------------------------------------------------+
| Warning | 1292 | Truncated incorrect INTEGER value: '2022-10-14' |
+---------+------+-------------------------------------------------+

这就是对警告的解释。
我没有水晶球,所以我不知道(老实说“不明白”)更新后你期望的值是“2022-10-142022-10-11”吗?在这种情况下使用concat()函数。如果要执行类似2022 - 10 - 14 + 2022 - 10 - 11的算术运算,请使用YEAR、MONTH和DAY函数。如果要添加日期,请使用DATE_ADD。

相关问题