Come arrivare a metà tempo da SQL Server 2005 datetime in formato HH:mm tt
Come arrivare a metà tempo da SQL Server 2005 datetime in 'HH: mm tt' formato
Ad es
11:25 AM
14:36 PM
Come arrivare a metà tempo da SQL Server 2005 datetime in formato HH:mm tt
Come arrivare a metà tempo da SQL Server 2005 datetime in 'HH: mm tt' formato
Ad es
11:25 AM
14:36 PM
Un modo è:
SELECT LTRIM(RIGHT(CONVERT(VARCHAR(20), GETDATE(), 100), 7))
Se si dispone di uno sguardo Books Online here, formato 100 è quella che ha il fattore tempo nel formato in cui lo vuoi inserire, è solo un caso di togliere la data dal davanti.
è necessario utilizzare CONVERT
funzione:
CONVERT(VARCHAR, yourdatetimefiled, 114) AS [HH:MI(12H)]
select right(convert(char(20),getdate(),0),7)
Nessun controllo se
Avrete bisogno di due convertiti, uno per ottenere il HH: tempo mm, ed uno per ottenere AM/PM. Per esempio:
declare @date datetime
set @date = '20:01'
SELECT CONVERT(VARCHAR(5), @date, 108) + ' ' +
SUBSTRING(CONVERT(VARCHAR(19), @date, 100),18,2)
Questo stampa:
20:01 PM
In una query di selezione, sostituire @date con il nome della vostra colonna.
sostituirei SubString() e Convert() con un singolo DatePart() e Case-Statement. Ciò ti darà anche un maggiore controllo sull'involucro/capitalizzazione del tuo AM/PM. Ad esempio (CASE WHEN DATEPART (HOUR, GETDATE()) <12 THEN 'am' ELSE 'pm' END) Puoi anche includere lo spazio in 'am' e 'pm' in modo da avere anche una concatenazione in meno. – MikeTeeVee
SQL Server 2008
SELECT
CONVERT(TIME,GETDATE()) AS HourMinuteSecond,
CONVERT(DATE,GETDATE(),101) AS DateOnly
GO
Risultato
HourMinuteSecond: 13:06:56.5770000
DateOnly: 2012-07-26
SQL Server 2000/2005
SELECT
CONVERT(VARCHAR(8),GETDATE(),108) AS HourMinuteSecond,
CONVERT(VARCHAR(8),GETDATE(),101) AS DateOnly
GO
SQL Server 2008
SELECT
CONVERT(TIME,GETDATE()) AS HourMinuteSecond,
CONVERT(DATE,GETDATE(),101) AS DateOnly
GO
Risultato:
HourMinuteSecond: 13:06:56.5770000
DateOnly: 2012-07-26
SQL Server 2000/2005
SELECT
CONVERT(VARCHAR(8),GETDATE(),108) AS HourMinuteSecond,
CONVERT(VARCHAR(8),GETDATE(),101) AS DateOnly
GO
select cast(getdate() as time)) [time],
La risposta è incompleta. La modifica è ancora più interessante! – SoftDev
SQL Sevrer 2005 non supporta il tipo 'Time', quindi questa risposta è completamente falsa. –
select substring(CONVERT(VARCHAR, getdate(), 114),1,5)
resault: 22:05
Questo vi dà l'datetime reale e non VARCHAR
CAST(LEFT(YOURDATETIME,12) AS SMALLDATETIME) AS YOURNEWDATE
come mai hai bisogno di AM/PM in formato HH: mm? – hallie
Sembra qualcosa che sarà più facile da fare nel codice dell'applicazione. – Oded