我需要一个sql server函数,当给定年份只作为字符串返回2月的最后一天或返回该年是否是闰年
答案 0 :(得分:5)
DECLARE @Year VARCHAR(4)
SET @Year = '2013'
SELECT DATEADD(DAY,-1,@Year+'0301')
答案 1 :(得分:5)
检查是否可以被4或100或400整除。
http://en.wikipedia.org/wiki/Leap_year
select case when
(
(@year % 4 = 0) and (@year % 100 != 0) or
(@year % 400 = 0)
) then 'LEAP' else 'USUAL' end
;
答案 2 :(得分:0)
这就是我想出的......它的确有效。
CREATE FUNCTION [dbo].[LastDayOfFeb] (@YEAR INT)
RETURNS VARCHAR(8)
AS
BEGIN
RETURN
(SELECT CASE datepart(mm, dateadd(dd, 1, cast((cast(@year as varchar(4)) + '0228') as datetime)))
WHEN 2 THEN '0229' + Cast(@YEAR AS VARCHAR(8))
ELSE '0228' + Cast(@YEAR AS VARCHAR(8))
END)
END