Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL DATE_SUB不使用变量,但使用常规值_Mysql_Sql - Fatal编程技术网

MySQL DATE_SUB不使用变量,但使用常规值

MySQL DATE_SUB不使用变量,但使用常规值,mysql,sql,Mysql,Sql,我有一个问题的这一部分: (@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_值-pm4.meta_值)/86400)是有符号的)是5,我把它放在select语句中测试它。我还知道以下

我有一个问题的这一部分:

(@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_值
-pm4.
meta_值
)/86400)是有符号的)
是5,我把它放在select语句中测试它。我还知道以下查询工作正常:

(@tmpo1245 := 5 ) AND
(@mutdate:=DATE_SUB( '2011-06-1', INTERVAL @tmpo1245 DAY ) ) AND

发生了什么事?

似乎是查询中的CAST中的子句出错了。我猜pm5.
meta_值
和pm4.
meta_值
的数据类型不是数字。因此,在进行减法之前,请先将它们转换为小数。示例代码如下所示

@tmpo1245 := CAST( ( ( 
    CAST( pm5.`meta_value` AS DECIMAL) - CAST( pm4.`meta_value` AS DECIMAL)) / 86400 ) 
    AS SIGNED )

错误似乎与查询中的强制转换内的子句有关。我猜pm5.
meta_值
和pm4.
meta_值
的数据类型不是数字。因此,在进行减法之前,请先将它们转换为小数。示例代码如下所示

@tmpo1245 := CAST( ( ( 
    CAST( pm5.`meta_value` AS DECIMAL) - CAST( pm4.`meta_value` AS DECIMAL)) / 86400 ) 
    AS SIGNED )