Pregunta

Estoy trabajando en una aplicación de seguimiento de problemas con ASP.NET y SQL Server 2005. Mientras rastreo los problemas, estoy almacenando la fecha límite como fecha de fecha en la base de datos y también si alguien publica un mensaje en el tablero de mensajes, la fecha/hora de publicación también está obteniendo Almacenado en el DB como DateTime.

Ahora mi requisito es mostrar la fecha límite del problema como "2 días restantes" cuando solo quedan 2 días, así cuando la fecha límite ya ha superado su SUD 2 días atrás. Creo que esto podría lograrse con SQL Server Datediff (), pero en el caso de los mensajes que necesito mostrar como publicado por hace 2 horas hace 3 minutos ... o publicado por 3 días hace 18 horas o algo similar ... (( Podemos eliminar las horas si se publicó incluso 1 día antes).

Probé Google pero no pude encontrar nada útil. Haría; Aprecia tu amable ayuda como siempre.

Gracias por adelantado.

¿Fue útil?

Solución

Use una variación de la siguiente consulta y ajuste según sea necesario. Para otros RDBMS, reemplace las funciones de fecha con equivalentes apropiados.

SELECT  CASE
          WHEN DateValue-GETDATE() >= 1 THEN CAST(DATEPART(dy, DateValue-GETDATE()) AS varchar) + ' day(s) remaining'
          WHEN DateValue-GETDATE() >= 0 THEN CAST(DATEPART(hh, DateValue-GETDATE()) AS varchar) + ' hour(s) remaining'
          /*Note, it's convenient to switch around for negatives*/
          WHEN GETDATE()-DateValue <= '00:59' THEN CAST(DATEPART(mi, GETDATE()-DateValue) AS varchar) + ' minutes(s) overdue'
          WHEN GETDATE()-DateValue <= 1 THEN CAST(DATEPART(hh, GETDATE()-DateValue) AS varchar) + ' hours(s) overdue'
        ELSE
          CONVERT(varchar, DateValue-GETDATE(), 121)
        END AS Time_Scale

Otros consejos

En lugar de hacer esto en SQL, puede usar el .net Espacio de tiempo estructura para obtener esta funcionalidad.

Puedes conseguirlo por reto Una fecha de otra, y le da los detalles de horas/minutos/segundos que necesita.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top