【问题标题】:How many days does SQL define a year interval?SQL定义一年间隔多少天?
【发布时间】:2020-01-21 16:34:00
【问题描述】:

查询:

SELECT 
      CAST ('2010-12-13' AS TIMESTAMP) - CAST ('2007-01-01' AS TIMESTAMP) <= INTERVAL '4 years',
      CAST ('2010-12-13' AS TIMESTAMP) <= CAST ('2007-01-01' AS TIMESTAMP) + INTERVAL '4 years',
      CAST ('2010-12-13' AS TIMESTAMP) - CAST ('2008-01-01' AS TIMESTAMP) <= INTERVAL '3 years',
      CAST ('2010-12-13' AS TIMESTAMP) <= CAST ('2008-01-01' AS TIMESTAMP) + INTERVAL '3 years'

结果:假真真真

为什么第一列 CAST ('2010-12-13' AS TIMESTAMP) - CAST ('2007-01-01' AS TIMESTAMP)

【问题讨论】:

  • 您使用的是什么 SQL 引擎?此外,TIMESTAMP 似乎不是正确的方法。您可能应该使用DATEDIFF 函数或任何与您的 SQL 引擎等效的函数。
  • 我使用 PostgreSQL。

标签: sql timestamp intervals


【解决方案1】:

我想我明白了。间隔“1 年”仅包括 360 天。

  • 第 1 列:左 = 1442 天,右 = 360 * 4 = 1440 天 —> 返回 false

  • 第 2 列:在右侧表达式中,2007(2007-01-01 的年份部分)+ 4(4 年间隔)= 2011 —> 右侧 = '2011-01-01'

  • 第 3 列:左 = 1077 天,右 = 360 * 3 = 1080 天 —> 返回 true

【讨论】:

    猜你喜欢
    • 2015-08-24
    • 2023-03-07
    • 1970-01-01
    • 2016-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多