2017-08-16 1 views
-1

Guter Morgen zurückkehrt,SQL CONVERT nicht neueste Ergebnisse

Ich habe eine Datetime-Spalte, und wenn ich eine SELECT-Abfrage und ORDER BY den Endtermin vor ihm Ergebnisse von einigen Wochen zurückkehren, was richtig ist, aber wenn ich Konvertieren Sie dieses Datum in einen VARCHAR und ORDER BY in dieser neuen CONVERTED-Spalte, es ist ein Datum aus dem letzten Jahr.

Apologies, es ist für SQL-Server, hier ist die Abfrage:

SELECT TOP (5) [dbo].[UploadLog].[UploadLogID] 
,[dbo].[UploadLog].[ChangedBy] 
,CONVERT(VARCHAR(19),[dbo].[UploadLog].[LastChanged]) AS UploadDate 
,[dbo].[UploadLog].[CompanyID] 
FROM [dbo].[UploadLog] 
WHERE [dbo].[UploadLog].[ChangedBy] = '5' 
ORDER BY [UploadDate] desc 

Ich bin nicht sicher, warum dies geschieht, aber würde jede Hilfe dankbar.

Vielen Dank!

+2

können Sie Abfrage anzeigen? – Whencesoever

+2

Bitte zeigen Sie Ihre Anfrage und einige Beispieldaten an. –

+0

Für welches RDBMS ist das gedacht? Bitte fügen Sie ein Tag hinzu, um anzugeben, ob Sie 'mysql',' postgresql', 'sql-server',' oracle' oder 'db2' verwenden - oder etwas ganz anderes. –

Antwort

1

Ich glaube, Ihre Abfrage enthält ORDER BY nach der Konvertierung in VARCHAR. Deshalb bekommen Sie das Datum vom letzten Jahr. Sie sollten zuerst ORDER BY und dann CONVERT das Ergebnis an VARCHAR. Sie können innere Abfragen oder andere Möglichkeiten dazu verwenden.

BTW, wenn Sie Ihre Frage bearbeiten und Ihre Abfrage hinzufügen, könnten wir effektiver helfen.

+0

Entschuldigung, ich habe die Frage mit der Aussage aktualisiert, könnten Sie mir bitte zeigen, wie ich vor der Konvertierung BESTELLEN würde? –