表中的日期字段(l_time)是varchar2类型的,存放的值类似于‘2010-04-22’.这个是历史问题。
现在的问题是在进行时间条件的搜索时,需要把这个字段转换成时间戳的格式。构造的SQL条件句类似于“select fileds from table where oracle_function(ls_time)>=时间戳”求助这个oracle_function,该用哪个,可以把varchar2类型的值转换成时间戳
没怎么接触过ORACLE,但是时间紧,求助!
现在的问题是在进行时间条件的搜索时,需要把这个字段转换成时间戳的格式。构造的SQL条件句类似于“select fileds from table where oracle_function(ls_time)>=时间戳”求助这个oracle_function,该用哪个,可以把varchar2类型的值转换成时间戳
没怎么接触过ORACLE,但是时间紧,求助!
如果有数据的话:修改原字段名:ALTER TABLE 表名 RENAME COLUMN 字段名 TO 字段名1;
添加一个和原字段同名的字段:ALTER TABLE 表名 ADD 字段名 DATE;
将原来的数据更新到新字段中,这是要注意,一定要显示进行数据类型转换:UPDATE 表名 SET 字段名 = CAST(字段名1 AS DATE);
删除原来的备份字段:ALTER TABLE 表名 DROP COLUMN 字段名1;
我不能修改数据库表结构的哈,其实就是想求一函数可以把vacrhar2类型的日期格式化的字符串转换成时间戳。
就是将varchar2类型的'2010-04-22'这种字符串转换成时间戳
--用to_date(date,format)函数
create table t(
col_1 number(2),
col_2 varchar2(20));
--
insert into t
select 10,'2011-01-01' from dual union all
select 11,'2011-02-02' from dual union all
select 15,'2011-03-05' from dual union all
select 20,'2011-04-21' from dual union all
select 54,'2011-04-22' from dual;
--
SQL> select * from t
2 where to_date(col_2,'yyyy-mm-dd')<=to_date('2011-03-05','yyyy-mm-dd');COL_1 COL_2
----- --------------------
10 2011-01-01
11 2011-02-02
15 2011-03-05