2017-08-28 1 views
1

Mein Problem ist, den Wochentag anstelle des Datums anzuzeigen. Im Moment funktioniert das:SQL: Konvertieren von Datum zu WeekDay funktioniert nicht

SELECT 
Sum(PostQuantity) AS Amount, 
to_char(PostingDate, 'dd-mm-yyyy') AS Day 
FROM 
table1 
GROUP BY to_char(PostingDate, 'dd-mm-yyyy') 
ORDER BY to_char(PostingDate, 'dd-mm-yyyy') 

aber das wird das Datum anzeigen. Hinzufügen von Funktionen wie:

SELECT 
Sum(PostQuantity) AS Amount, 
DatePart(Weekday,PostingDate) AS Day 

oder

SELECT 
Sum(PostQuantity) AS Amount, 
DateName(dw,PostingDate) AS Day 

wird nicht funktionieren. Ich denke, mein Problem ist die Verwendung der PostingDate in der SELECT Operator, aber mein Versuch, es zu beheben, hat nicht so gut funktioniert.

+1

SQL Server nicht über eine Funktion 'to_char()', meinst du Oracle? – HoneyBadger

+2

Auch "wird nicht funktionieren" ist keine Problembeschreibung. * Warum * haben diese Anfragen nicht funktioniert? Hast du die Funktion 'datepart' auch in der' Gruppe von' hinzugefügt? – HoneyBadger

+0

yeah Entschuldigung, ich meinte Oracle, – Marklord96

Antwort

1

Ich sehe das Problem nicht in Ihrem Code, aber manchmal versucht eine Alternative funktioniert. Versuchen Sie folgendes:

SELECT SUM(t.postQuantity) as amount, 
     TO_CHAR(t.PostingDate,'DAY') as dayOfTheWeek 
FROM YourTable t 
GROUP BY TO_CHAR(t.PostingDate,'DAY') 

Dy werden Sie zunächst drei Buchstaben geben.

+0

Dies ist nicht gleichbedeutend mit der ursprünglichen Abfrage. Die ursprüngliche Abfrage nach Datum gruppiert. Diese Version wird aggregiert, indem alle Montags in dieselbe Gruppe gesetzt werden (unabhängig vom Datum). Vielleicht wollte das OP, aber es ist nicht klar. – mathguy

+0

Ich denke, das ist, was er beabsichtigt, denn wie Sie sehen können, versuchte er diese Zeile in etwas anderes zu konvertieren (die 'SUM (postQuantity)' bleibt. @ Mathguy – sagi

+0

) Aber so die GROUP BY-Klausel - er nur versucht, die SELECT zu ändern. In jedem Fall ist diese Art von Zweifel immer eine Frage wert. Ich habe nur das OP in einem Kommentar unter der ursprünglichen Frage gefragt. – mathguy

0

können Sie die DATENAME-Funktion verwenden, wenn es auf SQLs

SELECT DATENAME(WEEKDAY,[Date]) 
FROM Table1 

In Oracle

select to_char(to_date('03/09/1982','dd/mm/yyyy'), 'DY') 
+0

danke für die schnelle antwort – Marklord96

Verwandte Themen