仅限年份,查找2月的最后一天

时间:2014-10-17 14:30:37

标签: sql sql-server

我需要一个sql server函数,当给定年份只作为字符串返回2月的最后一天或返回该年是否是闰年

3 个答案:

答案 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