【问题标题】:How to use DATEDIFF? How many days are inside of two dates如何使用 DATEDIFF?两个日期之间有多少天
【发布时间】:2009-12-22 13:52:02
【问题描述】:
如何使用 DATEDIFF?我怎样才能使它工作?还是我应该完全不同地使用 DATEDIFF?
SELECT DATEDIFF('Started ','will_end') AS 'Duration' FROM my_table WHERE id = '110';
我试图得到答案,两个日期之间有多少天。
我想得到这样的回答:
持续时间 = 7 天;
我有这种数据库:
开始 |将结束
2009-12-17 | 2009-12-24
2009-12-12 | 2009-12-26
【问题讨论】:
标签:
php
mysql
database
datediff
days
【解决方案1】:
把will_end放在第一位,started放在第二位:
SELECT DATEDIFF('2009-12-24', '2009-12-17')
---
7
另外,从您的字段名称中删除单引号:
SELECT DATEDIFF(will_end, started) AS Duration
FROM my_table
WHERE id = 110
,或者用反引号替换它们:
SELECT DATEDIFF(`will_end`, `started`) AS `Duration`
FROM `my_table`
WHERE `id` = 110
【解决方案2】:
您是否得到NULL 结果?您的查询中有单引号中的列名,这意味着您将字符串 'Started ' 和 'will_end' 传递给 DATEDIFF 而不是列值。尝试去掉单引号,你会开始看到一些结果:
SELECT DATEDIFF(Started, will_end) AS Duration FROM my_table WHERE id = '110';
请注意,这会给您带来否定的结果。要获得肯定的结果,请颠倒列的顺序:
SELECT DATEDIFF(will_end, Started) AS Duration FROM my_table WHERE id = '110';
【解决方案3】:
更换订单
DATEDIFF('will_end','开始')