oracle 中不帶時分秒的字符串 to_date 轉換時間後與帶時分秒的date型字段做帶等值的比較 (>=,<=,=)時,由於字符串不帶時分秒,所以轉換後時分秒默認為00:00:00,oracle中比較date是以壹個時間點來比較的,精確到秒甚至毫秒微秒納秒,所以date字段的時分秒不為00:00:00的就與不帶時分秒字符串轉換後的date匹配不上。示例: 表中huhai_seq_value所有數據 MYDATE ———– 2009-03-02 2009-03-02 2009-03-02 2009-03-03 2009-03-03 2009-03-03 –sql1: select hsv.mydate from huhai_seq_value hsv where hsv.mydate = to_date(‘2009-03-03’,’yyyy-mm-dd ‘); sql1查詢結果: MYDATE ———– 2009-03-03 2009-03-03 –sql2: select hsv.mydate from huhai_seq_value hsv where to_char(hsv.mydate,’yyyy-mm-dd’) = ‘2009-03-03’; sql查詢結果: MYDATE ———– 2009-03-03 2009-03-03 2009-03-03 結論:所以在做不帶時分秒的日期比較時最好用to_char函數轉換後與字符串比較。 用between比較兩個時間 例 select * from tbl_name where issue_time between to_date(‘2007-04-12 23:59:59′,’YYYY-MM-DD HH24:MI:SS’) and sysdate;