sql - solar - radiacion cosmica hoy 2018
Obtenga la fecha y hora de hoy a la medianoche y añádala. (5)
¿Hay un comando sql para obtener la fecha de hoy a la medianoche y poder agregarle una cantidad de minutos?
Fecha ahora hora de medianoche:
Select DATEADD(d,0,DATEDIFF(d,0,GETDATE()))
AÑADIR 600 minutos:
Select DATEADD(mi,600,DATEDIFF(d,0,GETDATE()))
Sí, solo usa las funciones dateiff y dateadd para eliminar la hora de cualquier fecha, luego agrega una parte fraccionaria de un día a ese número
Declare @aDate DateTime
Set @aDate = getDate()
Declare @Minutes Integer
Set @minutes = 600 -- 10 hours
Select DateAdd(day, DateDiff(day, 0, @aDate), 0) + @minutes / 1440.0 -- 1440 min/day
-- or You could also use the dateadd again...
Select DateAdd(minute, @minutes , DateAdd(day, DateDiff(day, 0, @aDate), 0))
Ambos selecciones regresan a las 10:00 am del mismo día (más o menos). Esto funciona porque, bueno, mira esta respuesta SO
EDITAR: Se ha agregado una secuencia de comandos de muestra para mostrar cómo funciona esto:
declare @dtTim datetime = getDate()
declare @today datetime = dateAdd(day, dateDiff(day, 0, @dtTim ), 0)
select @dtTim, @today
También puede lanzar hasta la date
para quitar la porción de tiempo:
declare @minutes int = 600
declare @start datetime = cast(getdate() as date)
declare @finish datetime = dateadd(mi, @minutes, @start)
Aunque, honestamente, no tengo idea de cómo funciona en comparación con
dateadd(day, datediff(day, 0, getdate()), 0)
Tuve que hacer algo similar, crear un procedimiento para ejecutar desde una cierta hora el día anterior a una determinada hora del día actual. Esto es lo que hice para establecer la fecha de inicio a las 16:30 del día anterior, básicamente restar las partes. no quiere volver a ponerlos en 0, luego agregue el valor que desea que sea.
-- Set Start Date to previous day and set start time to 16:30.00.000
SET @StartDate = GetDate()
SET @StartDate = DateAdd(dd,- 1, @StartDate)
SET @StartDate = DateAdd(hh,- (DatePart(hh,@StartDate))+16, @StartDate)
SET @StartDate = DateAdd(mi,- (DatePart(mi,@StartDate))+30, @StartDate)
SET @StartDate = DateAdd(ss,- (DatePart(ss,@StartDate)), @StartDate)
SET @StartDate = DateAdd(ms,- (DatePart(ms,@StartDate)), @StartDate)
Espero que esto ayude a alguien.
Use lo siguiente:
select DATEADD(SECOND, 36000, CAST(CONVERT(VARCHAR(10), GETDATE(), 101) AS datetime))
De esta manera, puede ajustar los segundos para señalar cualquier hora del día que desee.
Consulte este formato de fecha / hora en SQL Server: Formato de fecha / hora de SQL Server