Función que determina el día de la semana
Es Independiente del seteo del @@DATEFIRST.
Ej.:( Retorna “MAR”)
SELECT dbo.Usr_Fn_DiaSemString(’20080122′)
Ref: artículos 94819 y 95382 Sql Magazine
Por Ilzik Ben-Gan
– =============================================
– Author: Carlos L. Pedranti
– Create date: 22/01/2008
– Retorna un String que Representa el día de la Semana
– La Función es independiente del seteo de @@DATEFIRST
– Basada en los artículo 94819 y 95382 Sql Magazine
– Por Ilzik Ben-Gan
– SELECT dbo.Usr_Fn_DiaSemString(’20080122′)
– =============================================
CREATE FUNCTION Usr_Fn_DiaSemString
(
– Add the parameters for the function here
@fecha DATETIME
)
RETURNS VARCHAR(3)
AS
BEGIN
DECLARE @DIASEM VARCHAR(3),
@DIANUMERO INTEGER
– 0 representa 01/01/1900 que fue Lunes
SELECT @DIANUMERO = DATEDIFF(day,0,@fecha)%7 + 1
– Otra alternativa es
–SELECT @DIANUMERO = DATEPART(weekday,@fecha + @@DATEFIRST – 1 )
SELECT @DIASEM = CASE(@DIANUMERO)
WHEN 1 THEN ‘LUN’
WHEN 2 THEN ‘MAR’
WHEN 3 THEN ‘MIE’
WHEN 4 THEN ‘JUE’
WHEN 5 THEN ‘VIE’
WHEN 6 THEN ‘SAB’
WHEN 7 THEN ‘DOM’
ELSE ‘XXX’
END
RETURN @DIASEM
END
Y con SELECT DATENAME(dw, getdate()) no me alcanzaría?
SELECT DATENAME(dw, 2)
“2″ es el numero del día. (martes)
depende del seteo del @@DATEFIRST
depende del seteo del @@DATEFIRST