Comment obtenir une partie de temps à partir de SQL Server 2005 datetime dans HH:mm tt
format
Par exemple.
11:25 AM
14:36 PM
Une façon est:
SELECT LTRIM(RIGHT(CONVERT(VARCHAR(20), GETDATE(), 100), 7))
Si vous jetez un oeil à Books Online here , le format 100 est celui qui a l'élément temps dans le format dans lequel vous le souhaitez, c'est juste un cas de suppression de la date du début.
Vous aurez besoin de deux convertis, un pour obtenir le temps HH: mm et un pour obtenir AM/PM. Par exemple:
declare @date datetime
set @date = '20:01'
SELECT CONVERT(VARCHAR(5), @date, 108) + ' ' +
SUBSTRING(CONVERT(VARCHAR(19), @date, 100),18,2)
Cela imprime:
20:01 PM
Dans une requête de sélection, remplacez @date par le nom de votre colonne.
SQL Server 2008
SELECT
CONVERT(TIME,GETDATE()) AS HourMinuteSecond,
CONVERT(DATE,GETDATE(),101) AS DateOnly
GO
Résultat
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 substring(CONVERT(VARCHAR, getdate(), 114),1,5)
resault: 22:05
SQL Server 2008
SELECT
CONVERT(TIME,GETDATE()) AS HourMinuteSecond,
CONVERT(DATE,GETDATE(),101) AS DateOnly
GO
Résultat:
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],
Cela vous donne un datetime réel et non varchar
CAST(LEFT(YOURDATETIME,12) AS SMALLDATETIME) AS YOURNEWDATE
Vous devez utiliser la fonction CONVERT
:
CONVERT(VARCHAR, yourdatetimefiled, 114) AS [HH:MI(12H)]
select right(convert(char(20),getdate(),0),7)
Pas de vérification cependant