SIMPLE SQL QUERY RETURNING截断了不正确的DOUBLE值



下午好,我已经在互联网上搜索了几个小时,关于我在MariaDB中收到的这个错误消息,还没有找到答案。我正试图将另一个日期添加到varchar(255(列中,它不断返回

Truncated incorrect DOUBLE value: '2022-10-14'

我一直在使用的sql查询是

UPDATE communities SET lastvisited = '2022-10-14' + lastvisited WHERE id = 26;

这是我正在做的一个非常简单的查询,我没有使用ANDON,所以非常困惑它为什么一直返回该消息。谢谢

+是一个算术运算符。这意味着,在执行运算之前,算术运算的所有部分都将转换为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。

最新更新