TSQL-Abfrageunterschied zwischen h: mm und H: mm im Formatbefehl

Ich würde mir vorstellen, dass dies irgendwann einmal gefragt worden wäre, aber ich kann es nicht finden.

Ich verwende derzeit Microsoft SQL server 2012 und im Management Studio laufe ich die folgende Abfrage:

SELECT DATEADD(hh, -4, DATEADD(s, 1396625291613/1000,'1970-01-01 00:00:00')) [raw date] ,format(dateadd(hh, - 4, dateadd(s, 1396625291613 / 1000, '1970-01-01 00:00:00')), 'M/d/yy h:mm tt') [h:mm] ,format(dateadd(hh, - 4, dateadd(s, 1396625291613 / 1000, '1970-01-01 00:00:00')), 'M/d/yy H:MM tt') [H:MM] 

Die Ergebnisse, die ich bekomme, sind:

 2014-04-04 11:28:11.000 4/4/14 11:28 AM 4/4/14 11:04 AM 

Die Frage ist, warum ist dies die Rückkehr zwei verschiedene timeen bei der Formatierung als h: mm vs H: MM. Eins ist 11:28 und das andere ist 11:04.

Ich habe auf Websites wie www.epochconverter.com geschaut und festgestellt, dass der Kleinschreibung richtig ist, aber warum ist Großbuchstaben 24 Minuten weg in diesem Fall. Wenn ich eine ganze list von Epochen Umwandlung data Ich finde es ist nicht konsistent in den Unterschieden.

Als hintere Geschichte, speicher ich Epoche Werte in einer database für Dinge wie ein Stempel oder letzte Update Stempel, die Art der Sache.

Vielen Dank.