J'ai fait des searchs partout à ce sujet mais je n'arrive pas à le find.
J'ai une colonne appelée OPEN_TIME qui contient le time militaire tel que:
1900-01-01 23:00:00.000
Je veux seulement extraire le time, ce que j'ai fait avec succès en faisant:
LTRIM(RIGHT(CONVERT(varchar, OPEN_TIME, 100), 7))
Cependant, cela me donne un moment de:
11:00PM
Je voudrais mettre un espace avant AM / PM pour qu'il ressemble à:
11:00 PM
Vous ne savez pas si c'est aussi simple que ça en a l'air? Tout avis sera le bienvenu.
Si 2012+ vous pouvez utiliser Format ()
Declare @Open_Time DateTime = '1900-01-01 23:00:00.000' Select Format(@Open_Time,'hh:mm tt')
Résultats
11:00 PM
Je devrais noter que Format () n'est pas connu pour ses performances.
Dans n'importe quelle version de SQL Server, vous pouvez utiliser la fonction REPLACE
REPLACE(LTRIM(RIGHT(CONVERT(varchar, OPEN_TIME, 100), 7)),'PM',' PM')
Si vous n'utilisez pas 2012 ou ne voulez pas utiliser Format, vous pouvez le faire avec STUFF.
Declare @Open_Time DateTime = '1900-01-01 23:00:00.000' SELECT STUFF( LTRIM(RIGHT(CONVERT(VARCHAR, @OPEN_TIME, 100), 7)), LEN(LTRIM(RIGHT(CONVERT(VARCHAR, @OPEN_TIME, 100), 7))) - 1, 0, ' ')