SQL定义年间隔多少天?

问题描述 投票:0回答:1

查询:

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'

结果:false true true true

为什么第一列CAST('2010-12-13'AS TIMESTAMP)-CAST('2007-01-01'AS TIMESTAMP)<=间隔'4 years'返回FALSE ??

sql timestamp intervals
1个回答
0
投票

我想我知道了。间隔“ 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

© www.soinside.com 2019 - 2024. All rights reserved.