2017-08-16 42 views
-1

早上好,SQL CONVERT沒有返回最新成果

我有一個datetime列,當我確實因它是從幾個星期前返回結果的最後日期,這是正確的SELECT查詢和秩序,但是當我將該日期時間轉換爲VARCHAR並將此新的CONVERTED列ORDER BY,這是從去年開始的日期。

道歉,它是SQL-Server中,這裏是查詢:

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 

我不知道爲什麼會這樣,但希望得到任何幫助。

非常感謝!

+2

可以顯示查詢嗎? – Whencesoever

+2

請顯示您的查詢和一些示例數據。 –

+0

哪個RDBMS適用於?請添加一個標籤來指定您是使用'mysql','postgresql','sql-server','oracle'還是'db2' - 或者其他的東西。 –

回答

1

我相信你的查詢包含ORDER BY後,它轉換爲VARCHAR。這就是爲什麼你要從去年的日期。您應該首先使用ORDER BY,然後將結果轉換爲VARCHAR。您可以使用內部查詢或其他方式來執行此操作。

順便說一句,如果你編輯你的問題並添加你的查詢,我們可以更有效地幫助。

+0

對不起,我用這個陳述更新了這個問題,你能否告訴我在CONVERT之前我該怎麼做ORDER BY? –