Problem
Datum und SQL-Server ist ein Thema für sich. Beim SQL Server wird das Datum immer mit einem Cast / Convert in ein neues Format gebracht, das Format kann aber nicht mit dd.mm.yyyy angegeben werden,
sondern mit Zahlen Codes.
Es gibt diverse Seiten die die genau Konvertierung zeigt, hier die wichtigsten für Deutsch und Englische SQL Server.
Weiter unten gibt es einen Link auf die Microsoft Seite mit allen Formatierungen.
Aktuelle Sprache Deutsch
Format | Beschreibung | Ergebnis (9. märz 2000) |
---|---|---|
0 | mon dd yyyy hh:miAM | Mär 9 2000 6:40PM |
100 | mon dd yyyy hh:miAM | Mär 9 2000 6:40PM |
1 | mm/dd/yy | 03/09/00 |
101 | mm/dd/yyyy | 03/09/2000 |
2 | yy.mm.dd | 00.03.09 |
102 | yyyy.mm.dd | 2000.03.09 |
3 | dd/mm/yy | 09/03/00 |
103 | dd/mm/yyyy | 09/03/2000 |
4 | dd.mm.yy | 09.03.00 |
104 | dd.mm.yyyy | 09.03.2000 |
5 | dd-mm-yy | 09-03-00 |
105 | dd-mm-yyyy | 09-03-2000 |
6 | dd mon yy | 09 Mär 00 |
106 | dd mon yyyy | 09 Mär 2000 |
7 | mon dd, yy | Mär 09, 00 |
107 | mon dd, yyyy | Mär 09, 2000 |
8 | hh:mm:ss | 18:40:08 |
108 | hh:mm:ss | 18:40:08 |
9 | mon dd yyyy hh:mi:ss:mmmAM | Mär 9 2000 6:40:08:330PM |
109 | mon dd yyyy hh:mi:ss:mmmAM | Mär 9 2000 6:40:08:330PM |
10 | mm-dd-yy | 03-09-00 |
110 | mm-dd-yyyy | 03-09-2000 |
11 | yy/mm/dd | 00/03/09 |
111 | yyyy/mm/dd | 2000/03/09 |
12 | yymmdd | 000309 |
112 | yyyymmdd | 20000309 |
13 | dd mon yyyy hh:mi:ss:mmm | 09 Mär 2000 18:40:08:330 |
113 | dd mon yyyy hh:mi:ss:mmm | 09 Mär 2000 18:40:08:330 |
14 | hh:mi:ss:mmm | 18:40:08:330 |
114 | hh:mi:ss:mmm | 18:40:08:330 |
20 | yyyy-mm-dd hh:mi:ss | 2000-03-09 18:40:08 |
120 | yyyy-mm-dd hh:mi:ss | 2000-03-09 18:40:08 |
21 | yyyy-mm-dd hh:mi:ss.mmm | 2000-03-09 18:40:08.330 |
121 | yyyy-mm-dd hh:mi:ss.mmm | 2000-03-09 18:40:08.330 |
Aktuelle Sprache English
Format | Beschreibung | Ergebnis (9. märz 2000) |
---|---|---|
0 | mon dd yyyy hh:miAM | Mar 9 2000 6:46PM |
100 | mon dd yyyy hh:miAM | Mar 9 2000 6:46PM |
1 | mm/dd/yy | 03/09/00 |
101 | mm/dd/yyyy | 03/09/2000 |
2 | yy.mm.dd | 00.03.09 |
102 | yyyy.mm.dd | 2000.03.09 |
3 | dd/mm/yy | 09/03/00 |
103 | dd/mm/yyyy | 09/03/2000 |
4 | dd.mm.yy | 09.03.00 |
104 | dd.mm.yyyy | 09.03.2000 |
5 | dd-mm-yy | 09-03-00 |
105 | dd-mm-yyyy | 09-03-2000 |
6 | dd mon yy | 09 Mar 00 |
106 | dd mon yyyy | 09 Mar 2000 |
7 | mon dd, yy | Mar 09, 00 |
107 | mon dd, yyyy | Mar 09, 2000 |
8 | hh:mm:ss | 18:46:58 |
108 | hh:mm:ss | 18:46:58 |
9 | mon dd yyyy hh:mi:ss:mmmAM | Mar 9 2000 6:46:58:220PM |
109 | mon dd yyyy hh:mi:ss:mmmAM | Mar 9 2000 6:46:58:220PM |
10 | mm-dd-yy | 03-09-00 |
110 | mm-dd-yyyy | 03-09-2000 |
11 | yy/mm/dd | 00/03/09 |
111 | yyyy/mm/dd | 2000/03/09 |
12 | yymmdd | 000309 |
112 | yyyymmdd | 20000309 |
13 | dd mon yyyy hh:mi:ss:mmm | 09 Mar 2000 18:46:58:220 |
113 | dd mon yyyy hh:mi:ss:mmm | 09 Mar 2000 18:46:58:220 |
14 | hh:mi:ss:mmm | 18:46:58:220 |
114 | hh:mi:ss:mmm | 18:46:58:220 |
20 | yyyy-mm-dd hh:mi:ss | 2000-03-09 18:46:58 |
120 | yyyy-mm-dd hh:mi:ss | 2000-03-09 18:46:58 |
21 | yyyy-mm-dd hh:mi:ss.mmm | 2000-03-09 18:46:58.220 |
121 | yyyy-mm-dd hh:mi:ss.mmm | 2000-03-09 18:46:58.220 |
Etwas spezieller Formatierungen
Wenn das Datum mit dem Format YYYYMMDD geliefert wird
Speziell wird es wenn das Datum YYYYMMDD geliefert wird, das kann mit Standards gelöst werden aber etwas umständlicher. Hier eine Lösung für das Problem
CAST(CONVERT(VARCHAR(10), stupid_date, 112) AS DATE)
Nützliche Funktionen für Datums-Berechnungen
Funktion | Beschreibung |
getdate() | Gibt das aktuelle System Datum und Zeit aus als Timstamp, den Einstellungen entsprechendem Format. |
Day |
Gibt den Tag des Datums aus Day(Datum) |
Month |
Gibt den Monat eines Datums aus Month(Datum) |
Year |
Gibt das Jahr eines Monats aus YEAR(datum) |
DATEFROMPARTS |
Gibt ein Datum aus, aus den Teilen des Datums DATEFROMPARTS ( year, month, day ) |
DATEDIFF |
Differenz zwischen zwei Datum berechnen in der Einheit die in Datepart erfasst wird. Ausgabe ist immer ein Interger Wert! DATEDIFF ( datepart, startdate , enddate)
|
DATEADD |
Einen Wert zum Datum hinzufügen DATEADD (datepart, number , date ) number kann auch negativ sein, wenn die |
EOMONTH |
Ende des Monats EOMONTH ( start_date [, month_to_add ] ) month_to_add können auch negativ sein! |
Weitere Datums-Formatierungen sind unter
Was ist ein Datepart
In einigen Formatierungen wird von einem datepart gesprochen. Dabei geht es um den Teil des Datums der ausgegeben werden soll oder der zur Berechnung verwendet werden soll. Mögliche Werte für Datepart sind in der Tabelle unten aufgelistet. Die Liste ist nicht abschliessend.
datepart | Abkürzungen |
---|---|
year | yy, yyyy |
quarter | qq, q |
month | mm, m |
dayofyear | dy, y |
day | dd, d |
week | wk, ww |
weekday | dw |
hour | hh |
minute | mi, n |
second | ss, s |
millisecond | ms |
microsecond | mcs |
nanosecond | ns |
TZoffset | tz |
ISO_WEEK | isowk, isoww |