我有疑问,如果我在表的某一列中将日期作为字符串,那么我希望将表排序到数据库中。我怎么做这个手术?
create table dateTable (
_id INTEGER,
date varchar2(50),
name varchar2(50)
);数据库管理系统是Oracle,如果这很重要的话。
问:那么日期会有多种格式吗,比如日期字段中的“dd”或“mm”?
是的,用户可以输入任何格式。
发布于 2010-12-07 07:22:07
再添加一列并插入日期值的格式。通过使用"to_date(date_value,date_format)“将varchar转换为日期,在order子句中使用该列
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发布于 2010-12-07 10:11:54
将数字存储在数字数据类型中,字符串存储在字符数据类型中,日期存储在日期数据类型中。如果您做错了任何其他方法,并且您将对数据库进行操作,这反过来又会使看起来像一样对您不利。(我认为这是刚刚发生的)。
至于你的问题,你只需按日期栏订购。如果行以“错误”的顺序出现,请再读一遍前一段。
select *
from dateTable
order by date;发布于 2010-12-07 07:06:57
从dateTable ORDERBy to_dateto_date中选择*(日期,'yyyymmdd');
或从dateTable ORDERBy to_dateto_date(日期)中选择*;
to_date函数的语法是:
to_date( string1, [ format_mask ], [ nls_language ] )string1是将转换为日期的字符串。
format_mask是可选的。这是用于将string1转换为日期的格式。
nls_language是可选的。这是nls语言,用于将string1转换为日期。
https://stackoverflow.com/questions/4374013
复制相似问题