2012-02-07 3 views
5

ho questa domandaConversione formato datetime di 12 ore

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

che mi dà il tempo nel formato 24 ore (militare)

ho voluto convertirlo in un formato a 12 ore così ho provato il domanda sotto

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 

e ottengo il formato 12 ore, ma io sono solo curioso di sapere se c'è un modo più breve o migliore di farlo. qualsiasi aiuto?

risposta

6

Se si desidera convertire il datetime corrente, ad esempio:

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

Invece di GETDATE() si può mettere il colonna desiderata in una query (come TDate nel tuo esempio). Se si desidera APPENA il tempo in 12h e non la data e l'ora utilizzare la sottostringa/destra per separarli. Sembra che tu sappia già come =).

This page elenca ogni conversione datetime. È davvero utile se hai bisogno di altri tipi di conversioni.

6

Questo restituirà solo l'ora, non la data.

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

per i dati della tabella:

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

Di seguito il codice tornerà solo il tempo come 22:30

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