SQL: Год последнего происшествия? - PullRequest
0 голосов
/ 15 декабря 2018

Как я могу найти последний раз, когда произошла комбинация дня и года.Итак, у меня есть длинный список дат, и мне нужен вывод с последним годом.

Например, предположим, что 31/12/2018 не произошло в 2018 году, поэтому я хочу, чтобы 31.12.2017 в качестве вывода?

Table:
Dates
01/03/2013
01/09/2012
01/03/2013
01/06/2011
03/03/2009
11/07/2011
01/03/2023
01/05/2021

Output:
01/03/2018
01/09/2018
01/03/2018
01/06/2018
03/03/2018
11/07/2018
01/03/2017
01/05/2017

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Это вам поможет:

select t2.*,
       (case when month(col) < month(current_date) or
                  (month(col) < month(current_date) and day(col) <= day(current_date))
             then year(current_date)
             else 1 + year(current_date)
        end)
from table2 t2;
0 голосов
/ 15 декабря 2018

Как насчет использования функции T-SQL ISDATE ( документы здесь ) в сочетании с методом грубой силы?

Короче говоря: Цикл по годам текущего года (в порядке убывания) и вопрос, является ли дата (в сочетании с текущим годом итерации) действительной датой?Если нет - продолжить (уменьшив значение года).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...