oracle帶時分秒日期的比較

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;