概述
在Oracle语句中,存在使用日期类型DATE相减的场景。
日期相减的结果是以天为单位的NUMBER类型的数值。
LightDB23.3版本对该功能进行了支持。
案例演示
环境准备
create database test_oracle with lightdb_syntax_compatible_type oracle;
查询日期相减类型
lightdb@test_normal=# \c test_oracle
You are now connected to database "test_oracle" as user "lightdb".
compatible type: oracle
lightdb@test_oracle=# create table test_date as select (sysdate - to_date('2023-01-01 02:02:02','yyyy-mm-dd hh24:mi:ss')) as test_col from dual;
SELECT 1
lightdb@test_oracle=# \d test_date
Table "public.test_date"
Column | Type | Collation | Nullable | Default
----------+---------+-----------+----------+---------
test_col | numeric | | |
lightdb@test_oracle=# select * from test_date;
test_col
----------------------
243.1768518518518519
(1 row)
可以看出,在Oracle兼容模式下日期相减出来的结果类型为numeric类型。