2013-02-11 61 views
-1

我有一個網站,其中包含新聞數據,我想按時間顯示最新的數據, 我有字段column_time包含8個數據。爲什麼當我使用這個SQL:datetime order by

select * from table_name order by waktu desc 

是結果是:

28 Jan 2013 | 15:36:47 
28 Jan 2013 | 15:30:48 
27 Jan 2013 | 21:38:36 
27 Jan 2013 | 21:38:32 
27 Jan 2013 | 21:38:29 
11 Feb 2013 | 20:41:05 
11 Feb 2013 | 20:40:37 
11 Feb 2013 | 20:36:11 

,而不是這個?

11 Feb 2013 | 20:41:05 
11 Feb 2013 | 20:40:37 
11 Feb 2013 | 20:36:11 
28 Jan 2013 | 15:36:47 
28 Jan 2013 | 15:30:48 
27 Jan 2013 | 21:38:36 
27 Jan 2013 | 21:38:32 
27 Jan 2013 | 21:38:29 
+5

什麼是此列 – Satya 2013-02-11 14:01:14

+0

如果你想訂購的數據類型,你爲什麼用waktu訂購?你的問題不清楚。 – usr 2013-02-11 14:07:35

+0

是的,你能告訴我們什麼是「waktu」列的數據類型? – Simon 2013-02-11 14:08:45

回答

3

的列進行排序等字符數據,類型varchartext
您可能想要使用timestampdatetime作爲數據類型,具體取決於您的祕密RDBMS。

+0

thx答案,但我沒有談論類型數據,如果我使用日期時間這絕對可以正確地命令。我談論包含日期但不能正確排序的字段(text/varchar)。任何想法? – Niinii 2013-02-11 14:34:31

+1

@DonnyAgus:好吧,**我**正在談論數據類型,因爲您可以使用正確的數據類型獲得所需的排序順序。也請告訴我們你正在使用的RDBMS。 – 2013-02-11 14:38:37

0

試試這個方法:最新記錄(不只是時間)DEMO - Converting to DATETIME)訂購

Select * from table_name 
Order by convert(Datetime,replace(your_column,' | ',' ')) desc 

OR如果你只需要順序按時間不論日期再使用; (您也可以轉換成時間,如果你在上面的SQL服務器2008)

Order by convert(Datetime, substring(your_column, 
     charindex('|',your_column,1)+2,len(your_column))) desc