Estoy intentando alcanzar la última hora posible de un día en particular, por ejemplo, para la fecha de 2008-01-23 00: 00: 00.000 que necesitaría para 2008-01- 23 23: 59: 59.999 tal vez mediante el uso de la función dateadd en el campo Fecha?¿Cómo puedo obtener la última hora posible de un día en particular?
Respuesta
SELECT DATEADD(ms, -2, DATEADD(dd, 1, DATEDIFF(dd, 0, GetDate())))
Pensé que tenías C# al principio ... Lo dejaré aquí en caso de que alguien más tropiece con esto.
DateTime now = DateTime.Now;
DateTime endofDay = now.Date.AddDays(1).AddMilliseconds(-1);
Puede reemplazar la variable 'ahora' con cualquier día usted está tratando de averiguar
La respuesta es SELECT DATEADD(ms, -3, '2008-01-24')
, la explicación se encuentra por debajo.
De Marc's blog:
Pero espera, Marc ... usted dijo que le gusta usar
BETWEEN
, pero esa consulta no tiene uno ... eso es porqueBETWEEN
is inclusive, lo que significa que incluye final- puntos. Si tuviera una orden vencida a la medianoche del primer día del mes siguiente, estaría incluida. Entonces, ¿cómo se obtiene el valor apropiado para un final de período? Ciertamente es NOT usando partes de fecha para ensamblar una (pero es necesario, recuerde que son las 23: 59: 59.997 como tiempo máximo ... no olvide los milisegundos). Para hacerlo bien, utilizamos el conocimiento incestuoso de que las columnas de Microsoft SQL ServerDATETIME
tienen como máximo una resolución de 3 milisegundos (algo que no va a cambiar). Entonces, todo lo que hacemos es restar 3 milisegundos de cualquiera de esas fórmulas de fin de período dadas anteriormente. Por ejemplo, el último posible instante de ayer (hora local) es:SELECT DATEADD(ms, -3, DATEADD(dd, DATEDIFF(dd, 0, GetDate()), 0))
Así que para hacer los pedidos que vencen este mes como una consulta
BETWEEN
, puede utilizar esto:SELECT [ID] FROM [dbo].[Orders] WHERE [ShipDue] BETWEEN DATEADD(mm, DATEDIFF(mm, 0, GetUTCDate()), 0) AND DATEADD(ms, -3, DATEADD(mm, DATEDIFF(mm, 0, GetUTCDate()) + 1, 0))
Recuerde, siempre asegúrese de hacer las operaciones matemáticas contra los parámetros de entrada, NOT columnas, o matará el SARG -ability de la consulta, lo que significa que los índices que podrían haberse utilizado no lo son.
Agregar -1 milisegundos al inicio de la próxima los días (incluso soporta DateAdd nanosegundos, si usted desea conseguir bien real).
Pero lo más probable es que solo desee utilizar este valor en una comparación, y en ese caso es incluso más simple.
En lugar de algo como esto:
AND @CompareDate <= [LastTimeforThatday]
o esto:
@compareDate BETWEEN [StartDate] AND [LastTimeforThatday]
hacerlo de esta manera:
AND @CompareDate < [BeginningOfNextDay]
o esto:
AND (@CompareDate >= [StartDate] AND @CompareDate < [BeginningOfNextDay])
Como dices, excluir el punto final es un enfoque muy estable para estos problemas. También permite que las duraciones se calculen sin fudgear. –
¿Por qué volver a entrar?
SELECT DATEADD(ms, 86399997, *yourDate*)
- 1. Cómo puedo especificar la última hora del día con DateTime
- 2. Python: obtener la fecha y hora de la última hora
- 3. Obtener la última hora del archivo en linux
- 4. ¿Cómo puedo obtener la hora en que Google bot accedió por última vez a la página?
- 5. ¿Cómo obtener la última fecha de un mes en particular con JodaTime?
- 6. ¿Cómo obtengo la hora del día en javascript/Node.js?
- 7. Almacenar la hora del día en SQL
- 8. MySQL: Cómo agrupar datos por hora y obtener la última hora
- 9. Buscar registros producidos en la última hora
- 10. obtener sólo la última fila de varias entradas de cada día en TSQL
- 11. ¿cómo puedo establecer la última hora modificada de un archivo de python?
- 12. mysql - hora de búsqueda por hora del día
- 13. svn - Hora desde la última fusión
- 14. ¿cómo puedo obtener la hora actual en C#?
- 15. ¿Cómo obtengo la última hora de modificación de un archivo en Perl?
- 16. ¿cómo puedo asegurarme de que un día sea un día de la semana en Rails?
- 17. ¿Cómo puedo obtener la hora local del usuario en lugar de la hora del servidor?
- 18. ¿Cómo puedo obtener la hora local en jQuery?
- 19. ¿Cómo obtener la última inserción/actualización/eliminación de fecha y hora en Sql Server 2005?
- 20. Cómo obtener el último día del mes
- 21. Cómo obtener el día de una fecha en particular usando JavaScript
- 22. Obtiene Objeto de tiempo al inicio del día en una zona horaria particular
- 23. Obtener la última hora de DDL para la tabla de Oracle en esquema diferente
- 24. ¿Cómo puedo obtener el último día del mes en C#?
- 25. Cómo obtener la marca de tiempo del mes actual, primer día del mes, hora cero
- 26. Obtener la última palabra de un NSString
- 27. ¿Cómo obtener el nombre del día actual usando una fecha particular en Android?
- 28. Cómo obtener la hora actual
- 29. Obtenga la fecha (un día antes de la hora actual) en Bash
- 30. Consulta para buscar tablas modificadas en la última hora
verificación de la etiqueta - que quiere hacerlo en tsql – Danimal
Mejor respuesta OMI –