Datum in Spalten aufteilen

Mario Pflaum

Benutzer
Beiträge
6
Hallo zusammen

Ich habe in einer Tabelle ein Datumsfeld (Format YYYY-MM-DD hh:mm:ss). Da ich innerhalb eines Reports jedoch die einzelnen Werte (z.B. Monat und Jahr) getrennt benötige, versuche ich mich gerade damit, das Datum aufzuteilen. Da ich jedoch noch "Anfänger" bin was die SQL-Programmierung angeht, komme ich momentan nicht weiter.
Ich bin bisher soweit, dass ich über den Befehl:
CONVERT (char(4), [DATUMSFELD], 102) as [Jahr]
wenigstens schon einmal das Jahr in einer separaten Spalte ausweisen kann. Nun komme ich jedoch mit dem Monat nicht mehr weiter.

Hat vielleicht jemand eine Idee, wie ich auch den Monat in einer separaten Spalte ausgeben kann?

Vielen Dank im Voraus.
 
Werbung:
Dafür gibt es passende Funktionen, ganz sicher auch in M$-SQL. In PostgreSQL ginge es via extract() zum Beispiel:

Code:
test=*# select extract(month from current_date);
 date_part
-----------
  9
(1 row)

test=*#
 
In MSSQL gibt es zahlreiche Datumsfunktionen, dafür ist das Datumsformat ja da. Beispiel:
Code:
SELECT datepart(yyyy,[DATUMSFELD]) AS jahr,datepart(mm,[DATUMSFELD]) AS monat,datepart(dd,[DATUMSFELD]) AS tag, datepart(hh,[DATUMSFELD]) AS stunde FROM tabelle
Ausgabe sind ganze Zahlen, das läßt sich zur Not aber auch in Zeichen konvertieren.
 
Vielen Dank für die schnellen Antworten. Soweit hat es geklappt.
Wenn ich nun noch hinbekomme, dass die Monate 1 bis 9 im Format "01", "02", "03"... ausgegeben werden hab ich es geschafft.
 
Code:
 SELECT right('0' + cast(datepart(mm,[DATUMSFELD]) AS VARCHAR(2)),2) AS monat
Muss man etwas tricksen. Die Zahl zur Zeichenkette formatieren und eine Null davor setzen. Ist die Zahl schon zweistellig, fällt die Null wieder weg wenn man die Zeichenkette immer auf 2 Stellen von Rechts kürzt.
 
Werbung:
Zurück
Oben