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類型相減是interval類型。
- 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)
- 將