Con SQL Server 2000, ¿cómo puedo obtener la primera y la última fecha del año actual?
Rendimiento esperado:
01/01/2012
y 31/12/2012
fuente
Con SQL Server 2000, ¿cómo puedo obtener la primera y la última fecha del año actual?
Rendimiento esperado:
01/01/2012
y 31/12/2012
SELECT
DATEADD(yy, DATEDIFF(yy, 0, GETDATE()), 0) AS StartOfYear,
DATEADD(yy, DATEDIFF(yy, 0, GETDATE()) + 1, -1) AS EndOfYear
La consulta anterior da un valor de fecha y hora para la medianoche al comienzo del 31 de diciembre. Esto es aproximadamente 24 horas antes del último momento del año. Si desea incluir el tiempo que podría ocurrir el 31 de diciembre, debe compararlo con el primero del próximo año, con una <
comparación. O puede comparar con los últimos milisegundos del año actual, pero esto todavía deja un espacio si está usando algo que no sea DATETIME (como DATETIME2):
SELECT
DATEADD(yy, DATEDIFF(yy, 0, GETDATE()), 0) AS StartOfYear,
DATEADD(yy, DATEDIFF(yy, 0, GETDATE()) + 1, -1) AS LastDayOfYear,
DATEADD(yy, DATEDIFF(yy, 0, GETDATE()) + 1, 0) AS FirstOfNextYear,
DATEADD(ms, -3, DATEADD(yy, DATEDIFF(yy, 0, GETDATE()) + 1, 0)) AS LastTimeOfYear
Detalles técnicos
Esto funciona calculando el número de años desde 1900 con DATEDIFF(yy, 0, GETDATE())
y luego agregándolo a una fecha de cero = 1 de enero de 1900. Esto se puede cambiar para que funcione para una fecha arbitraria reemplazando la GETDATE()
parte o un año arbitrario reemplazando la DATEDIFF(...)
función con "Año - 1900".
SELECT
DATEADD(yy, DATEDIFF(yy, 0, '20150301'), 0) AS StartOfYearForMarch2015,
DATEADD(yy, 2015 - 1900, 0) AS StartOfYearFor2015
He aquí una forma bastante sencilla;
SELECT DATEFROMPARTS(YEAR(GETDATE()), 1, 1) AS 'First Day of Current Year';
SELECT DATEFROMPARTS(YEAR(GETDATE()), 12, 31) AS 'End of Current Year';
No es sexy, pero funciona.
Puede obtener el año actual usando la
DATEPART
función, a partir de la fecha actual obtenida usandogetUTCDate()
fuente
DATETIME
lugar de una cadena y, obviamente, eso puede no coincidir con el resultado esperado según la pregunta.yyyyMMdd
es inequívoco.simplemente escribe: -
fecha de inicio del año.
fuente
Cada año tiene el 1 como la primera fecha y el 31 como la última fecha, lo que debe hacer es solo adjuntar el año a ese día y mes, por ejemplo: -
fuente
Para obtener el primer y último día del año, se puede utilizar la
CONCAT
función. El valor resultante se puede convertir a cualquier tipo.fuente
Para la fecha de inicio del año actual:
Para la fecha de finalización del año actual:
fuente
Otra forma: (desde SQL Server 2012)
fuente
Mira este:
fuente
fuente
fuente
Parece que está interesado en realizar una operación todo para un año determinado, si este es el caso, recomendaría usar la función YEAR () de esta manera:
Lo mismo ocurre con DAY () y MONTH () . También están disponibles para las variantes de MySQL / MariaDB y se introdujeron en SQL Server 2008 (por lo que no para el 2000 específico).
fuente
fuente
En Microsoft SQL Server (T-SQL) esto se puede hacer de la siguiente manera
FECHA Y HORA ACTUAL : devuelve la fecha del servidor SQL en el momento de la ejecución de la consulta.
AÑO : obtiene la parte del año de la marca de tiempo actual.
STR , LTRIM : estas dos funciones se aplican para que podamos convertir esto en un varchar que se pueda concatinar con nuestro prefijo deseado (en este caso, es la primera fecha del año o la última fecha del año). Por alguna razón, el resultado generado por la función YEAR tiene espacios de prefijo. Para solucionarlos usamos la función LTRIM que se deja recortar.
fuente
Si llega al 1 de enero, es posible que aún sea la fecha del último año.
fuente
Prueba esto:
fuente
Msg 195, Level 15, State 10, Line 1 'NOW' is not a recognized function name.
--- Demos de Lalmuni ---
--- insertar valores ---
fuente