資料庫時區
修改
ALTER DATABASE SET TIME_ZONE = '-05:00';
ALTER DATABASE SET TIME_ZONE = dbtimezone;
ALTER DATABASE SET TIME_ZONE = local;
ALTER DATABASE SET TIME_ZONE = 'America/New_York';
驗證
SELECT DBTIMEZONE FROM DUAL;
會話時區
ALTER SESSION SET TIME_ZONE = '-05:00';
ALTER SESSION SET TIME_ZONE = dbtimezone;
ALTER SESSION SET TIME_ZONE = local;
ALTER SESSION SET TIME_ZONE = 'America/New_York';
SELECT SESSIONTIMEZONE FROM DUAL;
函數
說明
CURRENT_DATE
文法:CURRENT_DATE()
說明:查詢目前時間
current_date傳回的是目前會話時間,而sysdate傳回的是伺服器時間。
current_date有時比sysdate快一秒,這可能是四舍五入的結果。
如果修改目前會話的時區,比如将中國的時區為東八區,修改為東九區,則current_date顯示的時間為東九區時間,根據東加西減的原則,current_date應該比sysdate快一小時。
例句:
CURRENT_TIMESTAMP
文法:CURRENT_TIMESTAMP()
說明:以timestamp with time zone資料類型傳回目前會話時區中的目前日期
例句:
LOCALTIMESTAMP
文法:LOCALTIMESTAMP()
說明:以本地timestamp資料類型傳回目前會話時區中的目前日期
EXTRACT
文法:
EXTRACT (
{ YEAR | MONTH | DAY | HOUR | MINUTE | SECOND }
| { TIMEZONE_HOUR | TIMEZONE_MINUTE }
| { TIMEZONE_REGION | TIMEZONE_ABBR }
FROM { date_value | interval_value } )
說明:
我們隻可以從一個date類型中截取 year,month,day(date日期的格式為yyyy-mm-dd);
我們隻可以從一個 timestamp with time zone 的資料類型中截取TIMEZONE_HOUR和TIMEZONE_MINUTE;
例一:
例二:
FROM_TZ
文法:FROM_TZ(x,time_zone)
說明:把指定的時間戳和日期轉換為timestamp with time zone類型
TO_DSINTERVAL
文法:TO_DSINTERVAL(C)
說明:将符合特定格式的字元串C轉換成INTERVALDAY TO SECOND類型的資料
TO_TIMESTAMP
文法:TO_TIMESTAMP(x[,format])
說明:把字串表達式X轉換成timestamp類型可以使用format指定格式
TO_TIMESTAMP_TZ
文法:TO_TIMESTAMP_TZ(x[,format])
說明:把字串表達式X轉換成timestamp with time zone類型可以使用format指定格式
TO_YMINTERVAL
文法:TO_YMINTERVAL(C)
說明:将符合特定格式的字元串C轉換成INTERVALYEAR TO MONTH類型的資料
TZ_OFFSET
文法:TZ_OFFSET(time_zone)
說明:按照最小時哈分鐘傳回time_zone的偏置時間