兼容时间和日期函数
1. from_tz
1.1 目的
将给定的不带时区的时间戳转换为指定的带时区的时间戳,如果指定时区或者时间戳为NULL,则返回NULL。
1.2 参数描述
| 参数 | 描述 |
|---|---|
| day | 不带时区的时间戳 |
| tz | 指定的时区 |
1.3 例子
select oracle.from_tz('2021-11-08 09:12:39','Asia/Shanghai') from dual;
from_tz
-----------------------------------
2021-11-08 09:12:39 Asia/Shanghai
(1 row)
select oracle.from_tz('2021-11-08 09:12:39','SAST') from dual;
from_tz
--------------------------
2021-11-08 09:12:39 SAST
select oracle.from_tz(NULL,'SAST') from dual;
from_tz
---------
(1 row)
select oracle.from_tz('2021-11-08 09:12:31',NULL) from dual;
from_tz
---------
(1 row)
2 numtodsinterval
2.1 目的
将给定数字转换为指定格式的时间,格式参数有:'day','hour','minute','second'。
2.2 参数描述
| 参数 | 描述 |
|---|---|
| value | 要转化的数字 |
| fmt | 目标日期和时间类型, 包括 'day', 'hour', 'minute' 'second' |
2.3 例子
select oracle.numtodsinterval(2147483646.1232131232,'day') from dual;
numtodsinterval
--------------------------------------------------
@ 2147483646 days 2 hours 57 mins 25.607758 secs
(1 row)
select oracle.numtodsinterval(2147483647.1232131232,'hour') from dual;
numtodsinterval
------------------------------------------
@ 2147483647 hours 7 mins 23.567104 secs
(1 row)
select oracle.numtodsinterval(7730941132799.1232131232,'second') from dual;
numtodsinterval
-------------------------------------------
@ 2147483647 hours 59 mins 59.123456 secs
(1 row)
select oracle.numtodsinterval(NULL,'second') from dual;
numtodsinterval
-----------------
(1 row)
select oracle.numtodsinterval(7730941132800.1232131232,NULL) from dual;
numtodsinterval
-----------------
(1 row)