In Oracle Database, de NEW_TIME()
functie converteert de datum van een gespecificeerde tijdzone naar een andere gespecificeerde tijdzone, en retourneert het resultaat.
Syntaxis
De syntaxis gaat als volgt:
NEW_TIME(date, timezone1, timezone2)
De functie retourneert dus de datum en tijd in tijdzone timezone2
wanneer datum en tijd in tijdzone timezone1
zijn date
.
Houd er rekening mee dat voordat u deze functie gebruikt, u de NLS_DATE_FORMAT
moet instellen parameter om 24-uurs tijd weer te geven.
De argumenten timezone1
en timezone2
kan een van deze tekstreeksen zijn:
AST of ADT | Atlantic Standard of Daylight Time |
BST of BDT | Bering-standaardtijd of daglichttijd |
CST of CDT | Central Standard of Daylight Time |
EST of EDT | Eastern Standard of Daylight Time |
GMT | Greenwich Mean Time |
HST of HDT | Alaska-Hawaï standaardtijd of zomertijd |
MST of MDT | Mountain Standard of Daylight Time |
NST | Newfoundland-standaardtijd |
PST of PDT | Pacific Standard of Daylight Time |
YST of YDT | Yukon standaard- of daglichttijd |
Voorbeeld
Hier is een voorbeeld:
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
SELECT
NEW_TIME(
TO_DATE('2030-03-01 12:30:45', 'YYYY-MM-DD HH24:MI:SS'),
'AST',
'PST'
)
FROM DUAL;
Resultaat:
2030-03-01 08:30:45
Zoals vermeld, bij gebruik van deze functie de NLS_DATE_FORMAT
parameter moet worden ingesteld om 24-uurs tijd weer te geven, dus dat is wat de eerste regel in het bovenstaande voorbeeld doet. U kunt deze regel weglaten als uw sessie NLS_DATE_FORMAT
. is parameter gebruikt al 24-uurs tijd. Zie Hoe u de datumnotatie van uw sessie instelt voor meer voorbeelden van het instellen van de datumnotatie voor de huidige sessie.
Nullargumenten
Als een argument null
is , het resultaat is null
:
SET NULL 'null';
SELECT
NEW_TIME(null, 'AST', 'ADT') AS "1",
NEW_TIME(TO_DATE('2030-03-01 12:30:45', 'YYYY-MM-DD HH24:MI:SS'), null, 'ADT') AS "2",
NEW_TIME(TO_DATE('2030-03-01 12:30:45', 'YYYY-MM-DD HH24:MI:SS'), 'AST', null) AS "3"
FROM DUAL;
Resultaat:
1 2 3 _______ _______ _______ null null null
Standaard retourneren SQLcl en SQL*Plus een spatie wanneer null
treedt op als resultaat van een SQL SELECT
uitspraak.
U kunt echter SET NULL
. gebruiken om een andere tekenreeks op te geven die moet worden geretourneerd. Hier heb ik gespecificeerd dat de string null
moet worden geretourneerd.
Ontbrekend argument
Bellen NEW_TIME()
met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:
SELECT NEW_TIME()
FROM DUAL;
Resultaat:
Error starting at line : 1 in command - SELECT NEW_TIME() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action: