我一直在尝试执行以下代码来计算使用PHP $date = date('Y-m-d H:i:s');
函数获取日期的差异。
$fine = mysqli_query($conn, "SELECT DATEDIFF(".$query_exec['Date_issued'].", ".$query_exec['Date_returned'].") AS days");
$fine = $fine*10;
如果返回的$ fine的值仅为0,即使日期的差异为&gt; <。
Plz帮助,谢谢
答案 0 :(得分:0)
我怀疑$query_exec['Date_issued']
和$query_exec['Date_returned']
包含类似2017-03-01
,2017-03-30
的内容,当插入上面的SQL代码时会生成:
SELECT DATEDIFF(2017-03-30, 2017-03-01) AS DAYS
此SQL中没有DATE
值。 2017-03-01
和2017-03-30
是数字表达式,其结果为2013
和1984
。
将$query_exec['Date_issued']
和$query_exec['Date_returned']
的值括在SQL中的引号中:
$sql = sprintf("SELECT DATEDIFF('%s','%s') AS DAYS",
$query_exec['Date_issued'], $query_exec['Date_returned']);
我使用sprintf()
使其更具可读性。如果您更喜欢它,也可以使用字符串连接。