Рассчитать разницу между двумя датами за год с 0 как 1 год - PullRequest
1 голос
/ 01 декабря 2019

У меня есть 2 даты для сравнения, поэтому я могу посчитать годы между обеими датами. Если дни меньше 365 дней, тогда я использую interval, чтобы сделать его равным 1 году. Однако у меня есть проблема, если обе даты похожи в день, например, от 2019-10-15 до 2020-10-15 будет отображаться как 2 года, когда я хочу, чтобы это отображалось как 1 год. Вот мой код без результата, который я хочу:

SELECT
  TIMESTAMPDIFF(
    YEAR,
    '2019-10-15',
    '2020-10-15' + INTERVAL 1 YEAR
  ) AS `year`
FROM
  dob

Результат:

enter image description here

То, что я хочу:

2019-10-15 до 2020-10-14 = 1 year

2019-10-15 до 2020-10-15 = 1 year

2019-10-15 до 2020-10-16 = 2 year

Как мне этого добиться? Заранее спасибо.

1 Ответ

2 голосов
/ 01 декабря 2019

Делает ли это то, что вы хотите? Кажется, вы ожидаете только одного дня от ожидаемого результата, поэтому я просто вычел день.

SELECT 
TIMESTAMPDIFF
( YEAR, '2019-10-15',
 '2020-10-15' 
+ INTERVAL 1 YEAR
- INTERVAL 1 DAY ) 
AS `year` 
FROM dob
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...