SQL - fecha en sql

 
Vista:

fecha en sql

Publicado por Jorge (2 intervenciones) el 17/08/2002 19:31:30
Alguien sabe como se captura el ultimo dia del mes en sql?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:fecha en sql

Publicado por Islas, Isaías (5072 intervenciones) el 18/08/2002 23:44:33
Cada mes del año trae los mismos días, excepto FEBRERO que cada 4 años tiene 29 días.

Mediante las funciones CASE, podrias obtener los días de cada Mes, ejemplo:

Prueba esta sentencia, cambiando los años de cada FEBRERO:

DECLARE @MyFecha SMALLDATETIME
SET @MyFecha = '1997-02-18'

SELECT CASE DATEPART(mm, @MyFecha)
when 1 then 31
when 2 then (case WHEN DATEPART(yy, @MyFecha) IN (1988, 1992, 1996, 2000, 2004, 2008, 2012) then 29 else 28 end)
when 3 then 31
when 4 then 30
when 5 then 31
when 6 then 30
when 7 then 31
when 8 then 31
when 9 then 30
when 10 then 31
when 11 then 30
when 12 then 31 end

¿Es lo que necesitas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:fecha en sql

Publicado por Jorge (3 intervenciones) el 19/08/2002 16:52:14
Asi es, bueno yo pensaba que sqlserver existe una funcion que captura ese dia como lo hay para capturar el primer dia. gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:fecha en sql

Publicado por Islas, Isaías (5072 intervenciones) el 19/08/2002 18:59:50
De hecho Jorge, cuando lei tu pregunta, se me hizo bastante interesante e hice algunas pruebas con el año biciesto y si "detecta" cuando Febrero debe traer 29 días, pero no encontre la forma de "Pedirle" que me diera el ultimo día del mes.

Algo como:

SELECT DATEPART(ld, GETDATE())

ld = Last Day

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:fecha en sql

Publicado por Jorge (3 intervenciones) el 20/08/2002 00:42:45
la funcion datepart devuelve un entero que es parte de la fecha, ya sea day, month o year. Lo que yo queria amigo es apartir de una fecha calcular la fecha final del mes, por ejemplo: funcion(03/20/2002)=03/31/2002. con la funcion datepart se podra extraer los enteros y luego concatenarlos bueno es una forma pero es muy tedioso, yo conosco que en otro lenguaje existe una funcion EOM(), end of month, quisiera saber si en sqlserver puedo hacer eso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:fecha en sql

Publicado por Islas, Isaías (5072 intervenciones) el 20/08/2002 15:37:07
Hola nuevamente

Tanto como una función, no la conozco.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:fecha en sql

Publicado por Jorge (3 intervenciones) el 20/08/2002 15:59:31
Asi es amigo, bueno de todos modo muchas gracias a ti.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:fecha en sql

Publicado por Islas, Isaías (5072 intervenciones) el 20/08/2002 22:28:37
Bueno, bueno, pero nunca hay que darse por derrotados, ¿porque no creamos una funcion?.

USE MASTER
GO

-- IIslas Ago-2002
CREATE FUNCTION DaysofMonth (@MyFecha datetime)
RETURNS int
AS
-- Devuelve el numero de dias que tiene un mes en base al parametro fecha.
BEGIN
DECLARE @DaysNumber INT
SELECT @DaysNumber = CASE DATEPART(mm, @MyFecha)
WHEN 1 THEN 31
WHEN 2 THEN (case WHEN DATEPART(yy, @MyFecha) IN (1988, 1992, 1996, 2000, 2004, 2008, 2012) THEN 29 ELSE 28 END)
WHEN 3 THEN 31
WHEN 4 THEN 30
WHEN 5 THEN 31
WHEN 6 THEN 30
WHEN 7 THEN 31
WHEN 8 THEN 31
WHEN 9 THEN 30
WHEN 10 THEN 31
WHEN 11 THEN 30
WHEN 12 THEN 31 end
RETURN(@DaysNumber)
END

GO

SELECT dbo.DaysofMonth(GETDATE())

GO

¿Como ves?, ya tendrias tu funcion en la base MASTER, lista para usarse...

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar