下午好,我已经在互联网上搜索了几个小时,关于我在MariaDB中收到的这个错误消息,还没有找到答案。我正试图将另一个日期添加到varchar(255(列中,它不断返回
Truncated incorrect DOUBLE value: '2022-10-14'
我一直在使用的sql查询是
UPDATE communities SET lastvisited = '2022-10-14' + lastvisited WHERE id = 26;
这是我正在做的一个非常简单的查询,我没有使用AND
或ON
,所以非常困惑它为什么一直返回该消息。谢谢
+
是一个算术运算符。这意味着,在执行运算之前,算术运算的所有部分都将转换为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。