Come si può sapere se un determinato anno è bisestile oppure no?
Un metodo molto facile è quello di verificare se il mese di febbraio dell'anno in questione abbia oppure no 29 giorni.
Una semplice funzione potrebbe essere implementata così:
CREATE FUNCTION dbo.isLeapYear(@year int)
RETURNS BIT AS
BEGIN
if day(dateadd(day, -1, convert(char(4), @year) + '0301') ) = 29
begin
return 1
end
return 0
END
GO
Che potrà essere richiamata semplicemente passando l'anno di riferimento.
SELECT dbo.isLeapYear(2008) as 'Leap?'
/* Output
Leap?
-----
1
*/
Una nota importante è che la funzione darà errore con anni inferiori al 1753.
Per eseguire il test su qualsiasi anno, è possibile prendere spunto a questo link: http://www.bigbold.com/snippets/posts/show/710