这个SQL语句有两种写法,用那种都可以: 第一种: select * from TBL_KERNEL1 where TBL_KERNEL1.DDATE >= to_date('2003-05-07','yyyy-mm-dd'); 第二种: select * from TBL_KERNEL1 where to_char(TBL_KERNEL1.DDATE,'yyyy-mm-dd')>= '2003-05-07';
TO xiejiangjun () select * from TBL_KERNEL1 where TBL_KERNEL1.DDATE >= '2003-5-7' 这句明显相比较的两项类型不一致!比较符前面是你说的日期型;比较符后面是字符型。注意非表里指定的日期型字段,务必用to_date()函数将一个字符型转换为日期型! 解决的两个方法: 1)to_string(日期) 2)to_date(字符串,'日期格式')
TBL_KERNEL1.DDATE 是日期型,格式是由系统定的,而'2003-5-7'是固定字符型
把TBL_KERNEL1.DDATE改为to_char(TBL_KERNEL1.DDATE,'yyyy-mm-dd'),'2003-5-7'改为'2003-05-07'就应该没问题了。
第一种:
select * from TBL_KERNEL1 where TBL_KERNEL1.DDATE >= to_date('2003-05-07','yyyy-mm-dd');
第二种:
select * from TBL_KERNEL1 where to_char(TBL_KERNEL1.DDATE,'yyyy-mm-dd')>= '2003-05-07';
select * from TBL_KERNEL1 where TBL_KERNEL1.DDATE >= '2003-5-7'
这句明显相比较的两项类型不一致!比较符前面是你说的日期型;比较符后面是字符型。注意非表里指定的日期型字段,务必用to_date()函数将一个字符型转换为日期型!
解决的两个方法:
1)to_string(日期)
2)to_date(字符串,'日期格式')
to_string 该为to_char!!!!