Machetes Varios

apuntes varios erp cwa logic ( ahora SoftLand Logic ) – sql y veremos que otra cosa

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

enero 22, 2008 - Publicado por | sql magazine, SQL Server, Transact SQL

4 comentarios »

  1. Y con SELECT DATENAME(dw, getdate()) no me alcanzaría?

    Comentario por sebagiar | febrero 2, 2010 | Responder

  2. SELECT DATENAME(dw, 2)

    “2″ es el numero del día. (martes)

    Comentario por Anónimo | abril 24, 2012 | Responder

  3. depende del seteo del @@DATEFIRST

    Comentario por mismachetes | abril 24, 2012 | Responder


Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.