primer - operaciones con fechas sql
¿Cómo obtener la fecha representando el primer día de un mes? (14)
Necesito funcionalidad en un script que me permita insertar fechas en una tabla.
¿Qué SQL necesito para insertar una fecha del formato?
01/08/2010 00:00:00
donde la fecha es el primer día del mes actual. ¿Qué necesito para cambiar el orden para poder especificar el valor del mes? Gracias
... en Powershell puedes hacer algo como esto:
Get-Date (get-Date ((Get-Date)) -formate MM.aaaa)
... durante el último mes haz esto:
Get-Date (get-Date ((Get-Date) .AddMonths (-1)) -format MM.aaaa)
... o para la fecha personalizada haga esto:
Get-Date (get-Date ((fecha de envío 12.01.2013)) -format MM.aaaa)
Estoy m sure there
algo como esto posible ...
Gruß
A partir de SQL Server 2012, puede usar la eomonth
incorporada de eomonth
, que está prevista para finales de mes, pero también se puede utilizar para comenzar así:
select dateadd(day, 1, eomonth(<date>, -1))
Si necesita el resultado como datetime
y datetime
, etc., simplemente cast
:
select cast(dateadd(day, 1, eomonth(<date>, -1)) as datetime)
Aquí hay una forma muy simple de hacerlo (usando SQL 2012 o posterior)
datefromparts(year(getdate()),month(getdate()),1)
también puede obtener fácilmente el último día del mes usando
eomonth(getdate())
Creo que normalmente convierte cadena a MM / DD / AA HH: mm: ss, necesitaría usar 08/01/2010 00:00:00
Lo sentimos, no entendí la pregunta, buscando si puedes cambiar el orden de las cadenas.
Esto puede ser lo que quieres:
declare @test as date
select @test = CONVERT(date, ''01/08/2010 00:00:00'', 103)
select convert(varchar(15), @test, 106)
La mejor y más fácil forma de hacerlo es usar:
SELECT DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)
Simplemente reemplace GETDATE () con la fecha que necesite.
La respuesta aceptada funciona, y puede ser más rápida, pero SQL 2012 y posteriores tienen un método más fácil de entender:
SELECT cast(format(GETDATE(), ''yyyy-MM-01'') as Date)
Modificado desde este link . Esto volverá como una cadena, pero puede modificarlo según sea necesario para devolver el tipo de datos de fecha y hora.
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(GetDate())-1),GetDate()),101)
Obtener el primer día del último mes
Select ADDDATE(LAST_DAY(ADDDATE(now(), INTERVAL -2 MONTH)), INTERVAL 1 DAY);
Obtener el último día del último mes
Select LAST_DAY(ADDDATE(now(), INTERVAL -1 MONTH));
SELECCIONAR DATEADD (día, 1-DATEpart (día, GETDATE ()), GETDATE ())
Una pieza muy simple de código para hacer esto
$ date - extract (día desde $ date) + 1
dos formas de hacer esto:
my_date - extract (día de my_date) + 1
''2014/01/21'' - extracto (día de ''2014/01/21'') + 1
seleccione last_day (add_months (sysdate, -1)) + 1 desde dual;
SELECT CAST(FLOOR(CAST(DATEADD(d, 1 - DAY(GETDATE()), GETDATE()) AS FLOAT)) AS DATETIME)
SELECT DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)
Esto funcionó perfectamente. De hecho, agregué una declaración de caso. Gracias por la publicacion:
SELECT Case(DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0) as Date)
select cast(cast(datepart(year,getdate()) as char(4))
+ ''/''
+ cast(datepart(month,getdate()) as char(2))
+ ''/01'' as datetime)