我有一部分查询:
(@tmpo1245 := CAST( ( ( pm5.`meta_value` - pm4.`meta_value` ) / 86400 ) AS SIGNED ) ) AND
(@mutdate:=DATE_SUB( '2011-06-1', INTERVAL @tmpo1245 DAY ) ) AND
导致我的查询失败的原因。我知道CAST( ( ( pm5.
meta_value - pm4.
meta_value ) / 86400 ) AS SIGNED )
是5,我把它放在一个select语句中进行测试。我也知道以下查询工作正常:
(@tmpo1245 := 5 ) AND
(@mutdate:=DATE_SUB( '2011-06-1', INTERVAL @tmpo1245 DAY ) ) AND
发生了什么事?
答案 0 :(得分:1)
似乎错误在于查询中CAST内的子句。我猜你试图减去的pm5。meta_value
和pm4。meta_value
的数据类型不是数字。因此,请在减去之前先将它们转换为小数。示例代码如下。
@tmpo1245 := CAST( ( (
CAST( pm5.`meta_value` AS DECIMAL) - CAST( pm4.`meta_value` AS DECIMAL)) / 86400 )
AS SIGNED )