Oracle NEW_TIME() 函数使用指南
Oracle NEW_TIME()
是一个内置函数,它将日期从指定时区转换为另一个指定时区并返回结果。
在使用此函数之前,您必须将 NLS_DATE_FORMAT
设置为显示 24 小时制时间。
Oracle NEW_TIME()
语法
这里是 Oracle NEW_TIME()
函数的语法:
NEW_TIME(date, timezone1, timezone2)
参数
date
-
必需的。
timezone1
-
必需的。
timezone2
-
必需的。
参数 timezone1
和 timezone2
可以是以下任何文本字符串:
AST
、ADT
:大西洋标准时间或夏令时BST
、BDT
:白令标准时间或夏令时CST
、CDT
:中央标准时间或夏令时EST
、EDT
:东部标准时间或夏令时GMT
:格林威治标准时间HST
、HDT
:阿拉斯加-夏威夷标准时间或夏令时。MST
、MDT
:山区标准时间或夏令时NST
:纽芬兰标准时间PST
、PDT
:太平洋标准时间或夏令时YST
、YDT
:育空标准时间或夏令时
返回值
Oracle NEW_TIME(date, timezone1, timezone2)
函数返回将 date
从 timezone1
时区转为 timezone2
时区的日期和时间。 无论 date
是什么类型,该函数的返回值类型总是 DATE
。
如果任意一个参数为 NULL
, NEW_TIME()
将返回 NULL
。
Oracle NEW_TIME()
示例
这里有几个展示了 Oracle NEW_TIME()
函数用法的示例。
基本用法
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
SELECT
NEW_TIME('2023-02-15 15:30:45', 'GMT', 'NST')
"NEW_TIME('2023-02-15 15:30:45', 'GMT', 'NST')"
FROM dual;
输出:
NEW_TIME('2023-02-15 15:30:45', 'GMT', 'NST')
________________________________________________
2023-02-15 12:00:45
当前时间
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
SELECT
NEW_TIME(CURRENT_DATE, 'GMT', 'NST')
"NEW_TIME('2023-02-15 15:30:45', 'GMT', 'NST')"
FROM dual;
输出:
NEW_TIME('2023-02-15 15:30:45', 'GMT', 'NST')
________________________________________________
2023-02-13 07:27:40
本示例中,我们使用 CURRENT_DATE
获取当前的日期和时间。
非法时区
如果那你指定了一个非法的时区, Oracle 将报给一个错误
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
SELECT
NEW_TIME(CURRENT_DATE, 'Err', 'NST')
FROM dual;
输出:
SQL Error: ORA-01857: not a valid time zone
01857. 00000 - "not a valid time zone"
本示例中,我们使用 CURRENT_DATE
获取当前的日期和时间。
NULL 参数
如果任意一个参数为 NULL
, NEW_TIME()
将返回 NULL
。
SET NULL 'NULL';
SELECT
NEW_TIME(NULL, 'GMT', 'NST') NULL_1,
NEW_TIME(CURRENT_DATE, NULL, 'NST') NULL_2,
NEW_TIME(CURRENT_DATE, 'GMT', NULL) NULL_3,
NEW_TIME(NULL, NULL, NULL) NULL_4
FROM dual;
输出:
NULL_1 NULL_2 NULL_3 NULL_4
_________ _________ _________ _________
NULL NULL NULL NULL
在本示例中,我们使用 SET NULL 'NULL';
语句将 NULL
值显示为 'NULL'
字符串。
结论
Oracle NEW_TIME()
是一个内置函数,它将日期从指定时区转换为另一个指定时区并返回结果。