如何使用DATEDIFF?两个日期里面有多少天

时间:2009-12-22 13:52:02

标签: php mysql database datediff days

如何使用DATEDIFF?我怎样才能使这个工作?或者我应该以完全不同的方式使用DATEDIFF?

SELECT DATEDIFF('Started ','will_end') AS 'Duration' FROM my_table WHERE id = '110';

我试着回答,两个日期里面有多少天。

我想得到一个类似的方式:
持续时间= 7天;

我有这种数据库:

开始| will_end
2009-12-17 | 2009-12-24
2009-12-12 | 2009-12-26

4 个答案:

答案 0 :(得分:4)

首先will_endstarted秒:

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

答案 1 :(得分: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';

答案 2 :(得分:0)

替换订单

DATEDIFF( 'will_end', '开始')

答案 3 :(得分:0)

我认为有3个参数要传递 DATEDIFF(datepart,startdate,enddate)

所以你的代码就是 DATEDIFF(dd,'开始','will_end')

http://msdn.microsoft.com/en-us/library/ms189794.aspx