【问题标题】: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','开始')

    【讨论】:

      【解决方案4】:

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

      所以你的代码是 DATEDIFF ( dd , 'Started ','will_end' )

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

      【讨论】:

      • 问题是关于MySQL
      • 呃……这和 MYSQL 有什么关系?
      猜你喜欢
      • 2013-07-23
      • 2014-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多