Essayer de convertir le temps de 1530 au format temporel de 15h30 dans SQL Server. Times = 1530
J'ai essayé: p> résultats: 15: 30: 00.0000000 P>
BlockQuote> Mais il se trouve dans 24 heures, je veux convertir en 15h30. Et supprimer des secondes.
Des idées? P> Merci d'avance. P> p>
4 Réponses :
Si vous souhaitez le formater, vous pouvez utiliser le format ou convertir
SELECT FORMAT(GETDATE(), 'HH:MM') SELECT CONVERT(VARCHAR(10), GETDATE(), 108)
Cela ne concerne que la partie Format finale. Il ne répond pas à la question de la conversion. En outre, le format () doit être utilisé avec parcimonie.
En outre, HH vous donnera 24 heures de temps. Mm vous donnera mois pas minute et vous avez oublié TT pour AM / PM
Si vous exécutez une ancienne version de SQL Server, cela fonctionnera:
DECLARE @times TABLE ( String VARCHAR(20), Numeral TIME, FriendlyString VARCHAR(20) ) INSERT INTO @times (String) SELECT '0001' INSERT INTO @times (String) SELECT '1200' INSERT INTO @times (String) SELECT '2359' UPDATE @times SET Numeral=CONVERT(VARCHAR(20),CONVERT(INT,String)/100) + ':' + RIGHT('00' + CONVERT(VARCHAR(20),CONVERT(INT,String)%100),2) ,FriendlyString= CONVERT(VARCHAR(20), CASE WHEN (CONVERT(INT,String)/100)%12 = 0 THEN 12 ELSE (CONVERT(INT,String)/100)%12 END ) + ':' + RIGHT('00' + CONVERT(VARCHAR(20),CONVERT(INT,String)%100),2) + ' ' + CASE WHEN (CONVERT(INT,String)/100)>=12 THEN 'PM' ELSE 'AM' END select * from @times
Ceci est incroyable de la façon dont sa construction est convertie.
Essayez ceci:
SET @Times ='1530' select CONVERT(varchar(15),CAST(CONVERT(datetime,LEFT(@Times,2)+':'+right(@Times,2)) AS TIME),100)
FYI, cela ne fonctionne pas si une chaîne de caractères <4 est fournie
Si vous travaillez d'une chaîne de 'HH: mm' alors ...
Declare @t VarChar(15) = '15:30' Declare @h Int = Left(@t,2) Declare @m Int = Right(@t,2) Select Case When @h > 11 Then Cast((iif(@h=12,24,@h) - 12) As VarChar(15)) + ':' + Cast(@m As VarChar(2)) + ' PM' Else @t + ' AM' End As time
Est 1530 une chaîne ou int. Que ressemblerait à 9h30 0930 ou 930?
Dupliqué possible de Format de l'heure dans SQL Server
Le temps n'a pas de format . Si vous souhaitez un format spécifique, vous avez besoin d'une chaîne et non d'une heure.
C'est une chaîne. Désolé de ne pas clarifier. Merci.