Oracle數(shù)據(jù)庫中的CURRENT_TIMESTAMP函數(shù)返回當(dāng)前日期和時(shí)間,包括時(shí)區(qū)信息。Oracle數(shù)據(jù)庫默認(rèn)情況下會(huì)使用數(shù)據(jù)庫服務(wù)器的時(shí)區(qū)信息來確定返回的時(shí)間戳的時(shí)區(qū)。
如果需要在查詢中使用不同的時(shí)區(qū)信息來處理CURRENT_TIMESTAMP返回的時(shí)間戳,可以使用TO_TIMESTAMP_TZ函數(shù)來轉(zhuǎn)換時(shí)間戳的時(shí)區(qū)信息。例如:
SELECT TO_TIMESTAMP_TZ(CURRENT_TIMESTAMP, 'UTC') FROM dual;
上面的查詢將返回當(dāng)前時(shí)間的時(shí)間戳,并將其轉(zhuǎn)換為UTC時(shí)區(qū)。
另外,也可以在會(huì)話級(jí)別或系統(tǒng)級(jí)別設(shè)置數(shù)據(jù)庫的時(shí)區(qū)信息,以影響CURRENT_TIMESTAMP返回的時(shí)間戳的時(shí)區(qū)。例如:
ALTER SESSION SET TIME_ZONE = 'UTC';
這將設(shè)置當(dāng)前會(huì)話的時(shí)區(qū)為UTC,從而影響CURRENT_TIMESTAMP返回的時(shí)間戳的時(shí)區(qū)。