如何使用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
答案 0 :(得分:4)
首先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
答案 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')