Oracle-數據類型為date 日期查詢技巧


  date類型是oracle中存儲日期類的一種常用類型,其處理也是在數據庫使用中比較多需要注意的地方。如我們可以使用to_char函數將其轉化為任意時間格式的字符串,也可使用to_date函數轉化相應的字符串為日期格式。

  本篇主要介紹這樣一種使用情況。

  問題描述:字段保存為帶有時分秒格式的日期形式,現需要查詢某天或某日期區間內數據,即查詢條件無時分秒。

  問題分析:由於保存格式自帶時分秒,而當使用between and時查詢某天或日期區間內數據時,實際會查詢到開始時間0點到結束時間0點之間的數據,從而導致查詢數據丟失問題。

  解決方案:

    一、不少文章提供了這種方式,即為拼接法。形如

       select *
         from *
        where $$$ between
              to_date('16/01/2018 00:00:00', 'dd/MM/yyyy hh24:mi:ss') and
              to_date('16/01/2018 23:59:59', 'dd/MM/yyyy hh24:mi:ss')

其中

16/01/2018 00:00:00,
16/01/2018 23:59:59

均為程序傳入數據,本方法簡單易懂。

    二、使用oracle的to_date、to_char配合使用。形如

select *
  from *
 where (to_date(to_char($$$,'dd/MM/yyyy'),'dd/MM/yyyy') Between
       to_date('16/01/2018', 'dd/MM/yyyy') AND
       to_date('16/01/2018', 'dd/MM/yyyy'))

這種方法十分方便,特分享。

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM