我有一个问题,如果我有日期作为字符串在一列表的基础上,我想排序到数据库的表。我怎么做这个手术?

create table dateTable (
    _id INTEGER,
    date varchar2(50),
    name varchar2(50)
);

dbms是oracle,如果这很重要的话。
问:那么日期是否有多种格式,比如日期字段中的“dd-mm-yyy”或“mm-dd-yyyy”?
A:是的,用户可以输入任何格式。

最佳答案

再添加一列并插入日期值的格式。在ORDERBY子句中使用该列,方法是使用“to-date(date-value,date-format)”将varchar转换为date

create table dateTable (date_id INTEGER, date_value varchar2(50),
date_name varchar2(50),date_format varchar2(50));

insert into dateTable values (1,'20101212121212','date1','YYYYMMDDHH24MISS');
insert into dateTable values (1,'20101212','date1','YYYYMMDD');
insert into dateTable values (1,'20101213','date3','YYYYMMDD');

select * from dateTable
order by to_date(date_value,date_format) desc

08-06 21:40