Сколько дней SQL определяет годовой интервал? - PullRequest
0 голосов
/ 21 января 2020

Запрос:

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

Почему 1-й столбец CAST ('2010-12-13' AS TIMESTAMP) - CAST ('2007-01- 01 'AS TIMESTAMP) <= ИНТЕРВАЛ' 4 года 'возвращает FALSE ?? </p>

1 Ответ

0 голосов
/ 22 января 2020

Думаю, я это выясню. Интервал «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

...