Как создать запрос sql-сервера, который игнорирует 29 февраля в не-високосный год и включает 29 февраля в високосный год. (Предположим, у меня есть столбец в таблице с датами от 2000-01-01 до 2016-12-31, например)Как выбрать даты записи из таблицы с прыжком и без високосного года?
На данный момент у меня есть это, но он полностью удаляет високосные годы.
SELECT uid, CONVERT(DATE,CAST(DATEPART(yyyy,day) AS VARCHAR(4))+'-'+
CAST([Month] AS VARCHAR(2))+'-'+
CAST(29 AS VARCHAR(2))) AS code_date, [29] AS code FROM [data]
WHERE DATEPART(mm,day) <> 2 AND NOT (ISDATE(CAST(DATEPART(yyyy,day) AS char(4)) + '0229') = 1)
Однако я хочу только удалить все 29 февраля каждый год, кроме високосного года.
нужный вам список дат? или знаете, если год прыжок или нет? –
Пожалуйста, объясните, что вы пытаетесь выполнить. Тип данных «date» не поддерживает 29 февраля в непиковые годы, поэтому я могу понять, что вы действительно хотите сделать. –
Даты в моей базе данных не чисты, и они включают 28 и 29 для всех прыжков и не-високосных годов. Я хочу выбрать только даты, которые включают все годы, но игнорирует 29,30 и 31 для не-високосного года и 30 и 31 для високосного года. – Tee