Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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 我的Sql查询。减去两个日期值时的值不正确_Mysql - Fatal编程技术网

Mysql 我的Sql查询。减去两个日期值时的值不正确

Mysql 我的Sql查询。减去两个日期值时的值不正确,mysql,Mysql,因此,我用当前日期减去数据库中某个日期的值,以天为单位查看它们之间的差异 问题是,当我减去一个在同一个月的值时,结果是正确的,但当它是在前一个月时,结果不是 今天是5月15日,如果从中减去相同的日期值,我得到0,如果从中减去前一天的日期值,我得到1,依此类推 但是当我从4月份的值中减去时,我得到了正确的值加上70。比如,如果我这样做(5月15日-4月30日),我应该得到15,但我得到85,以此类推,如果尝试使用3月或2月,我得到更高的值,如果尝试(5月15日-2月6日),我得到309 我能做什么

因此,我用当前日期减去数据库中某个日期的值,以天为单位查看它们之间的差异

问题是,当我减去一个在同一个月的值时,结果是正确的,但当它是在前一个月时,结果不是

今天是5月15日,如果从中减去相同的日期值,我得到0,如果从中减去前一天的日期值,我得到1,依此类推

但是当我从4月份的值中减去时,我得到了正确的值加上70。比如,如果我这样做(5月15日-4月30日),我应该得到15,但我得到85,以此类推,如果尝试使用3月或2月,我得到更高的值,如果尝试(5月15日-2月6日),我得到309


我能做什么?

您应该查看
DATEDIFF()
函数。这将满足您的需求,提供两个日期之间的日差


从彼此的日期中减去日期并不像你想象的那样有效

如果你从5月15日减去4月30日,这就是内部计算的结果:

20180515-20180430=85

这些数字只是被当作小数处理


您正在寻找的函数名为
DATEDIFF()

,作为对您看到的行为的解释,减法运算符
-
(减号)对数值进行操作。MySQL正在将日期值隐式转换为数值,并执行数字减法
20180515-20180430
。当减法完成时,它只是减去数字,表示“日期”的原始值的概念就消失了。我建议使用带有
DAY
关键字的TIMESTAMPDIFF函数作为第一个参数。
SELECT (CURRENT_DATE - P.DataDiPrestito) AS "Sisssssss"
FROM prestito P, utente U
WHERE P.id_Utente = U.ID_Utente