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
- 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"
- 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"
- 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"
- 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.
http://php.net/manual/en/function.cal-days-in-month.php
La duración en días del mes seleccionado en el calendario dado
<?php
$num = cal_days_in_month(CAL_GREGORIAN, 8, 2003); // 31
echo "There was $num days in August 2003";
?>
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);