全部產品
Search
文件中心

PolarDB:支援64位DATE類型

更新時間:Jul 06, 2024

PolarDB PostgreSQL版(相容Oracle)支援Oracle相容的64位DATE類型。

注意事項

  • 在核心小版本V1.1.29(發布時間:2022年12月)及以上版本中建立的叢集支援該功能。存量叢集,不支援該功能。
  • 需要搭配使用PolarDB最新版本的JDBC驅動,JDBC驅動版本需要42.2.9.1.2及以上,否則可能會出現精度丟失的問題。如何下載以及查看PolarDB-JDBC版本,請參見JDBC

簡介

與舊版本相比,新版本主要的相容性變化分為以下三方面:

  • DATE類型相減是numeric類型,不再是interval類型。
    • 在舊版本中,DATE類型相減是interval類型。
      select pg_typeof(sysdate - sysdate) from dual;
      顯示結果如下:
       pg_typeof
      -----------
       interval
      (1 row)
    • 在新版本中,DATE類型相減是numeric類型。
      select pg_typeof(sysdate - sysdate) from dual;
      顯示結果如下:
       pg_typeof
      -----------
       numeric
      (1 row)
  • DATE類型對於更高精度的輸入,會進行精度截斷。
    • 在舊版本中,對於更高精度的輸入,沒有進行秒之後的精度截斷。
      select to_date('2021-10-31 10:31:31.7777') - to_date('2021-10-31 10:31:31') from dual;
      顯示結果如下:
         ?column?
      ---------------
       00:00:00.7777
      (1 row)
    • 在新版本中,對於更高精度的輸入,會進行秒之後的精度截斷。
      select to_date('2021-10-31 10:31:31.7777') - to_date('2021-10-31 10:31:31') from dual;
      顯示結果如下:
       ?column?
      ----------
              0
      (1 row)
  • 支援通過設定nls_date_format來控制DATE類型的展示。
    • nls_date_format設定為'yyyy/mm/dd hh24:mi:ss',並查詢DATE類型。
      set nls_date_format = 'yyyy/mm/dd hh24:mi:ss';
      select sysdate from dual;
      顯示結果如下:
             sysdate
      ---------------------
       2022/12/06 09:13:59
      (1 row)
    • nls_date_format設定為'yyyy-mm-dd hh24:mi:ss',並查詢DATE類型。
      set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';
      select sysdate from dual;
      顯示結果如下:
             sysdate
      ---------------------
       2022-12-06 09:14:31
      (1 row)