Sandro Bizioli


Chi sogna di giorno conosce molte cose che sfuggono a chi sogna soltanto di notte. (E.A.Poe)
Mappa

Verifica dell'anno bisestile (IsLeapYear)

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

Categoria: SQL Server
mercoledì, 17 gen 2007 Ore. 17.51
Statistiche
  • Views Home Page: 111.256
  • Views Posts: 567.029
  • Views Gallerie: 115.817
  • n° Posts: 227
  • n° Commenti: 222
Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003