-1

我有一个包含新闻数据的网站,我想按时间显示最新的数据,我的字段 column_time 包含 8 个数据。为什么当我使用这个 SQL 时:

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
4

2 回答 2

3

该列按字符数据、类型varchartext.
您可能希望使用timestampordatetime作为数据类型,具体取决于您的秘密 RDBMS。

于 2013-02-11T14:09:29.340 回答
0

试试这个按最新记录(不仅仅是时间)排序(演示 - 转换为 DATETIME

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

或者,如果您只需要按时间订购而不考虑日期,请使用;(如果您在 sql-server 2008 以上,您也可以转换为时间)

Order by convert(Datetime, substring(your_column,
         charindex('|',your_column,1)+2,len(your_column))) desc
于 2013-02-11T14:25:20.757 回答