我想按日期订购。
例如
table_date February 2011 January 2011 December 2010
我已经尝试过:
SELECT distinct(table_date) FROM tables ORDER BY table_date DESC
伯,这是行不通的。
我得到这个代替:
January 2011 February 2011 December 2010
你能帮我吗?
如果要按日期排序, 请将其存储为日期而不是字符串。 除非您的日期字符串的格式为yyyy-mm-dd,否则它不会按您希望的顺序排序。
yyyy-mm-dd
数据库可以按原样进行足够的工作,而无需人们加倍努力,因此,您应该尽可能地避免我喜欢的 SQL体操。
将其存储为日期,然后(如果需要)使用日期函数以形式获取它February 2011。
February 2011
这样会比您尝试做的要容易得多。
即使由于代码限制而 不能 更改任何当前列,也可以始终将另一列添加到数据库中,TABLE_DATE_AS_DATE然后放入插入/更新触发器以根据进行填充TABLE-DATE。
TABLE_DATE_AS_DATE
TABLE-DATE
然后做:
update table x set table_date = table_date
或类似方法触发所有行的触发器。
然后,您的查询仍然可以获取,table_date但可table_date_as_date用于订购。当然这是一个麻烦,但是在过去当务之急是代码无法更改时,我不得不使用类似的技巧,因此我们不得不求助于DBMS的技巧。
table_date
table_date_as_date