J'ai utilisé le littéral de string de fonction de format () disponible dans SQL Server 2012 pour faire grand effet. Malheureusement, je ne trouve pas de bonnes ressources pour m'aider à sortir l'AM / PM d'un littéral formel date-heure. J'utilise ce code:
SELECT CASE WHEN CONVERT(DATE, GETDATE()) BETWEEN '2013-03-10' AND '2013-11-03' OR CONVERT(DATE, GETDATE()) BETWEEN '2014-03-09' AND '2014-11-02' OR CONVERT(DATE, GETDATE()) BETWEEN '2015-03-08' AND '2015-11-01' OR CONVERT(DATE, GETDATE()) BETWEEN '2016-03-13' AND '2016-11-06' OR CONVERT(DATE, GETDATE()) BETWEEN '2017-03-12' AND '2017-11-05' OR CONVERT(DATE, GETDATE()) BETWEEN '2018-03-11' AND '2018-11-04' OR CONVERT(DATE, GETDATE()) BETWEEN '2019-03-10' AND '2019-11-03' THEN format(dateadd(hh, -4, GETDATE()), 'MMMM d, yyyy h:mm EDT') ELSE format(dateadd(hh, -5, GETDATE()), 'MMMM d, yyyy h:mm EST') END as process_finished
Pour get ce format:
20 novembre 2013 01:28 EST
Quand bien sûr, je veux que ça ressemble à ceci:
20 novembre 2013 13:28 EST
Notes sur le code: J'utilise les plages de dates pour afficher correctement l'heure d'été et l'heure d'hiver pour la côte est des États-Unis.
Merci!
Il vous manque le désignateur AM / PM dans votre string de format.
THEN format(dateadd(hh, -4, GETDATE()), 'MMMM d, yyyy h:mmtt EDT') ELSE format(dateadd(hh, -5, GETDATE()), 'MMMM d, yyyy h:mmtt EST')
Reportez-vous à la page Personnalisation des strings de format de date et d'heure pour plus de détails.