una ultimo ultima todos obtener mes los fecha eomonth dias calcular año sql-server sql-server-2005 date datetime

sql server - ultimo - Consulta SQL para encontrar el último día del mes



obtener todos los dias de un mes sql server (9)

Calcular la última fecha del mes es un cálculo bastante simple

  1. Encuentre la cuenta total de meses hasta la fecha actual usando la función DATEDIFF (.., .., ..) - Seleccione DATEDIFF (MM, 0, GETDATE ())

Salida - 1374, si la salida getdate () es "2014-07-23 19: 33: 46.850"

  1. Incremento por 1 en el recuento de meses totales - Seleccione DATEDIFF (MM, 0, GETDATE ()) + 1

Salida - 1375, si la salida getdate () es "2014-07-23 19: 33: 46.850"

  1. Obtenga la primera fecha del próximo mes: seleccione DATEADD (MM, DATEDIFF (MM, 0, GETDATE ()) + 1,0)

Salida - ''2014-08-01 00: 00: 00.000'', si la salida getdate () es "2014-07-23 19: 33: 46.850"

  1. Reste por -1 en la primera fecha del próximo mes, que devolverá la última fecha del mes actual - Seleccione DATEADD (DD, -1, DATEADD (MM, DATEDIFF (MM, 0, GETDATE ()) + 1,0))

Salida - ''2014-07-31 00: 00: 00.000'', si la salida getdate () es "2014-07-23 19: 33: 46.850"

De la misma manera de cálculo podemos lograr el - 1. Última fecha del mes siguiente 2. Última fecha del mes anterior y así sucesivamente ...

Espero que este artículo te ayude.

Necesito encontrar el último día de un mes en el siguiente formato:

"2013-05-31 00:00:00:000"

Alguien por favor ayuda.


Prueba este -

CREATE FUNCTION [dbo].[udf_GetLastDayOfMonth] ( @Date DATETIME ) RETURNS DATETIME AS BEGIN RETURN DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, @Date) + 1, 0)) END

Consulta:

DECLARE @date DATETIME SELECT @date = ''2013-05-31 15:04:10.027'' SELECT DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, @date) + 1, 0))

Salida:

----------------------- 2013-05-31 00:00:00.000


Sé que esta pregunta fue para SQL Server 2005, pero pensé que mencionaría: a partir de SQL 2012, ahora hay una función EOMONTH() que obtiene el último día del mes. Para obtenerlo en el formato especificado por el asker original, debe enviarlo a una datetime y datetime .

SELECT CAST(eomonth(GETDATE()) AS datetime)


SQL Server 2012 presenta la función eomonth :

select eomonth(''2013-05-31 00:00:00:000'') --> 2013-05-31


Seleccione DATEADD (DAY, - (DAY (DATEADD (MONTH, 1, GETDATE ()))), DATEADD (MONTH, 1, GETDATE ()))

Esto funciona muy bien en T-sql ..

Reemplace el GETDATE () de la consulta con su nombre de columna.



TO FIND 1ST and Last day of the Previous, Current and Next Month in Oracle SQL ----------------------------------------------------------------------------- SELECT SYSDATE, LAST_DAY(ADD_MONTHS(SYSDATE,-2))+1 FDPM, LAST_DAY(ADD_MONTHS(SYSDATE,-1)) LDPM, LAST_DAY(ADD_MONTHS(SYSDATE,-1))+1 FDCM, LAST_DAY(SYSDATE)LDCM, LAST_DAY(SYSDATE)+1 FDNM, LAST_DAY(LAST_DAY(SYSDATE)+1) LDNM FROM DUAL


dateadd(month,1+datediff(month,0,getdate()),-1)

Para verificar la ejecución:

print dateadd(month,1+datediff(month,0,@date),-1)


declare @date datetime; set @date = getdate(); -- or some date select dateadd(month,1+datediff(month,0,@date),-1);