2012-02-07 30 views
5

tengo esta consultaconversión de formato de fecha y hora a 12 horas

select CONVERT(varchar(5), tdate ,108) AS [Time] from table 

que me da la hora en formato de 24 horas (militar)

que querían convertirlo en un formato de 12 horas, así que probé el consulta siguiente

select SUBSTRING(CONVERT(VARCHAR, tdate, 100),13,2) + ':' 
+ SUBSTRING(CONVERT(VARCHAR, tdate, 100),16,2) + '' 
+ SUBSTRING(CONVERT(VARCHAR, tdate, 100),18,2) AS T 
from table 

y consigo el formato de 12 horas, pero estoy curiosidad si hay un camino más corto o mejor de hacerlo. ¿alguna ayuda?

Respuesta

6

Si desea convertir la fecha y hora actual, por ejemplo:

SELECT CONVERT(VARCHAR, getdate(), 100) AS DateTime_In_12h_Format 

En lugar de getdate() usted puede poner su columna deseada en una consulta (como TDate en su ejemplo). Si desea SOLO el tiempo en 12 horas y no la fecha y la hora, use la subcadena/derecha para separarlas. Parece que ya sabes cómo =).

This page enumera cada conversión de fecha y hora. Es realmente útil si necesita otros tipos de conversiones.

6

Esto devolverá el tiempo, no la fecha.

SELECT RIGHT(CONVERT(VARCHAR, getdate(), 100), 7) AS time 

Para su tabla de datos:

select RIGHT(CONVERT(varchar, tdate ,100), 7) AS [Time] from table 
0

A continuación código devolverá sólo el tiempo como 22:30

SELECT FORMAT(CAST(getdate() AS DATETIME),'hh:mm tt') AS [Time] 
Cuestiones relacionadas