2016-05-03 8 views
-1

ich aus der Datenbank ein „Rechnungsdatum“ -Feld nenne und später in meiner Coldfusion mir das Datumsformat wie folge:Format Datumsspalte dann ORDER BY in MSSQL Abfrage

#DateFormat(SESSION.ClientListInvoice.InvoicedDate,"MM/DD/YYYY")# 

Aber ich brauche eigentlich, dass zu formatieren Spalte, bevor ich die ORDER DESC/ASC in meiner ursprünglichen Abfrage verwende. Unten ist das, was ich versuche zu erreichen:

Ich bin nur nicht sicher, wie Sie das Datum aus der Abfrage formatieren.

+2

Formatierung wird häufig verwendet, wenn Daten nicht angezeigt werden, während 'Ordering ' –

+1

Welche Version von' SQL Server' verwenden Sie? –

+1

Warum müssen Sie vor der Bestellung formatieren? Sie können ORDER BY CAST (KONVERTIEREN (VARCHAR, InvoicedDate, 101) AS DATE) DESC verwenden, aber wie andere bereits gefragt haben, hängt es davon ab, welche Version von SQL Server verwendet wird. ORDER BY CAST (KONVERTIEREN (VARCHAR, CI.InvoicedDate, 101) AS DATETIME) DESC sollte zum Bestellen funktionieren. –

Antwort

4

Abhängig von Ihren Anforderungen können Sie, da Sie SQL Server 2008 verwenden, Formatierungen in der SELECT-Anweisung selbst und in ORDER BY hinzufügen. Wenn Sie es einfach effektiv bestellen möchten, brauchen Sie nur den ORDER BY-Teil. Aber wenn Sie auch die Anzeige der Datensätze zu formatieren möchten, müssen Sie die Formatierung in der SELECT-Anweisung selbst aufzunehmen:

SELECT CI.ClientName,CONVERT(VARCHAR,CAST(CI.InvoicedDate AS DATE),101) AS InvoicedDate 
FROM ClientInvoices AS CI 
WHERE Blah Blah Blah 
ORDER BY CAST(CI.InvoicedDate AS DATE) DESC, CI.ClientName ASC 

Auch Sie haben alias nicht Ihre Tabellennamen in der Abfrage, so „CI. " Das Vorbereiten Ihrer Spalten hätte einen Fehler verursacht.

+0

Danke, mein Herr. Ich habe tatsächlich nur den ORDER BY-Teil benutzt, aber es ist so, wie es jetzt sollte. Vielen Dank! +1 überprüft. – Denoteone