TSQL 2012 Format string littérale avec AM et PM

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.