oracle 中不带时分秒的字符串 to_date 转换时间后与带时分秒的date型字段做带等值的比较 (>=<==)时由于字符串不带时分秒所以转换后时分秒默认为::oracle中比较date是以一个时间点来比较的精确到秒甚至毫秒微秒纳秒所以date字段的时分秒不为::的就与不带时分秒字符串转换后的date匹配不上示例
表中huhai_seq_value所有数据
MYDATE
sql
select hsvmydate from huhai_seq_value hsv
where hsvmydate = to_date(yyyymmdd );
sql查询结果
MYDATE
sql
select hsvmydate from huhai_seq_value hsv
where to_char(hsvmydateyyyymmdd) = ;
sql查询结果
MYDATE
结论所以在做不带时分秒的日期比较时最好用to_char函数转换后与字符串比较
用between比较两个时间
例
select * from tbl_name where issue_time between to_date( ::YYYYMMDD HH:MI:SS) and sysdate;