如何使用DATEDIFF?我怎样才能让这个工作?或应该使用DATEDIFF完全地不同?

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

我试图得到答案,有多少天是两个日期内。

我想获得一个aswer,如:点击 持续时间= 7天;

我有这样的数据库:

开始| will_end结果 2009-12-17 | 2009-12-24点击 2009-12-12 | 2009-12-26

有帮助吗?

解决方案

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

其他提示

您得到一个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';

替换的顺序

DATEDIFF( 'will_end', '开始')

我认为有在要传递3参数 DATEDIFF(日期部分,开始日期,结束日期)

因此您的代码将是 DATEDIFF(DD, '开始', 'will_end')

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top