Como podéis imaginar en este post vamos a ver algunas de las funciones relativas a fechas y de control de flujo básicas introducidas en Denali (SQL Server 2012) respecto a "cómo se hacían las cosas" en versiones anteriores de SQL Server:
Versión SQL Server 2008:
CREATE FUNCTION dbo.f_EsAñoBisiesto(@año VARCHAR(4)) RETURNS INT AS
BEGIN
DECLARE @resultado AS INT
IF DATEPART(dd,DATEADD(d,-1,(@año+'0301')))=29
SET @resultado=1
ELSE
SET @resultado=0
RETURN @resultado
END
Versión SQL Server 2012:
CREATE FUNCTION dbo.f_EsAñoBisiesto(@año INT) RETURNS INT AS
BEGIN
RETURN(IIF(DATEPART(dd,(EOMONTH(CONCAT(@año,'0201')))) = 29, 1, 0))
END
Las diferencias son obvias en cuanto a reducción de código necesario, ya que se usan algunas funciones interesantes como CONCAT, para unir texto y números también, EOMONTH (devuelve el último día del mes de la fecha pasada como parámetro) y IIF (de idéntico funcionamiento a los lenguajes de programación tradicionales, donde el primer parámetro es la condición a evaluar, el segundo la acción a realizar o resultado a devolver si la condición evaluado es cierta, y el tercer parámetro la acción si la condición es falsa). Hasta la próxima.
No hay comentarios :
Publicar un comentario