Je veux avoir seulement hh:mm
partir de la date.
Comment puis-je l'obtenir?
J'ai essayé ceci:
CONVERT(VARCHAR(8), getdate(), 108)
Il suffit d'utiliser les 5 premiers caractères ...?
SELECT CONVERT(VARCHAR(5),getdate(),108)
Vous pouvez facilement utiliser la fonction Format () au lieu de tout le casting pour SQL 2012 et au-dessus seulement
SELECT FORMAT(GETDATE(),'hh:mm')
C’est de loin le meilleur moyen de procéder à la conversion requise.
Une autre méthode utilisant la fonction intégrée DATEPART
:
SELECT cast(DATEPART(hour, GETDATE()) as varchar) + ':' + cast(DATEPART(minute, GETDATE()) as varchar)
Le code suivant montre l’heure et les minutes actuelles dans la colonne "Heure: Minutes" pour nous.
SELECT CONVERT(VARCHAR(5), GETDATE(), 108) +
(CASE WHEN DATEPART(HOUR, GETDATE()) > 12 THEN ' PM'
ELSE ' AM'
END) 'Hour:Minutes'
ou
SELECT Format(GETDATE(), 'hh:mm') +
(CASE WHEN DATEPART(HOUR, GETDATE()) > 12 THEN ' PM'
ELSE ' AM'
END) 'Hour:Minutes'
Voici la syntaxe pour afficher les heures et les minutes d'un champ issu d'une instruction SELECT. Dans cet exemple, le champ SQL s'appelle "UpdatedOnAt" et correspond à DateTime. Testé avec MS SQL 2014.
SELECT Format(UpdatedOnAt ,'hh:mm') as UpdatedOnAt from MyTable
J'aime le format qui affiche le jour de la semaine sous forme d'abréviation de 3 lettres et qui comprend les secondes:
SELECT Format(UpdatedOnAt ,'ddd hh:mm:ss') as UpdatedOnAt from MyTable
Le suffixe "as UpdatedOnAt" est facultatif. Cela vous donne un en-tête de colonne égal au champ que vous avez sélectionné pour commencer.