溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

管理不同時(shí)區(qū)的數(shù)據(jù)

發(fā)布時(shí)間:2020-08-06 20:56:52 來(lái)源:ITPUB博客 閱讀:164 作者:brj880719 欄目:關(guān)系型數(shù)據(jù)庫(kù)

一、設(shè)置時(shí)區(qū)

1、數(shù)據(jù)庫(kù)時(shí)區(qū)
 a) 修改
  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';
 b) 驗(yàn)證
  SELECT DBTIMEZONE FROM DUAL;
2、會(huì)話時(shí)區(qū)
 a) 修改
  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';
 b) 驗(yàn)證
  SELECT SESSIONTIMEZONE FROM DUAL;

二、時(shí)間數(shù)據(jù)類型

函數(shù) 說明
CURRENT_DATE 語(yǔ)法:CURRENT_DATE()
說明:查詢當(dāng)前時(shí)間
current_date返回的是當(dāng)前會(huì)話時(shí)間,而sysdate返回的是服務(wù)器時(shí)間。
current_date有時(shí)比sysdate快一秒,這可能是四舍五入的結(jié)果。
如果修改當(dāng)前會(huì)話的時(shí)區(qū),比如將中國(guó)的時(shí)區(qū)為東八區(qū),修改為東九區(qū),則current_date顯示的時(shí)間為東九區(qū)時(shí)間,根據(jù)東加西減的原則,current_date應(yīng)該比sysdate快一小時(shí)。
例句:
  1. select current_date, sysdate from dual;
CURRENT_TIMESTAMP 語(yǔ)法:CURRENT_TIMESTAMP()
說明:以timestamp with time zone數(shù)據(jù)類型返回當(dāng)前會(huì)話時(shí)區(qū)中的當(dāng)前日期
例句:
  1. SELECT CURRENT_TIMESTAMP
  2.   FROM DUAL;
LOCALTIMESTAMP 語(yǔ)法:LOCALTIMESTAMP()
說明:以本地timestamp數(shù)據(jù)類型返回當(dāng)前會(huì)話時(shí)區(qū)中的當(dāng)前日期
例句:
  1. SELECT LOCALTIMESTAMP
  2.   FROM DUAL;
EXTRACT 語(yǔ)法:
EXTRACT (
  { YEAR | MONTH | DAY | HOUR | MINUTE | SECOND }
  | { TIMEZONE_HOUR | TIMEZONE_MINUTE }
  | { TIMEZONE_REGION | TIMEZONE_ABBR }
  FROM { date_value | interval_value } )
說明:
我們只可以從一個(gè)date類型中截取 year,month,day(date日期的格式為yyyy-mm-dd);
我們只可以從一個(gè) timestamp with time zone 的數(shù)據(jù)類型中截取TIMEZONE_HOUR和TIMEZONE_MINUTE;
例句:
例一:
  1. SELECT EXTRACT(year FROM DATE '2011-05-17') "year",
  2. EXTRACT(month FROM DATE '2011-05-17') "month",
  3. EXTRACT(day FROM DATE '2011-05-17') "day"
  4. FROM DUAL;
例二:
  1. SELECT EXTRACT(day FROM dt2-dt1) "day",
  2.        EXTRACT(hour FROM dt2-dt1) "hour",
  3.        EXTRACT(minute FROM dt2-dt1) "minute",
  4.        EXTRACT(second FROM dt2-dt1) "second"
  5. FROM (SELECT TO_TIMESTAMP('2011-02-04 15:07:00',
  6.                           'yyyy-mm-dd hh34:mi:ss') dt1,
  7.              TO_TIMESTAMP('2011-05-17 19:08:46',
  8.                           'yyyy-mm-dd hh34:mi:ss') dt1
  9.       FROM DUAL);
FROM_TZ 語(yǔ)法:FROM_TZ(x,time_zone)
說明:把指定的時(shí)間戳和日期轉(zhuǎn)換為timestamp with time zone類型
例句:
  1. SELECT FROM_TZ(TO_TIMESTAMP('19880719','YYYYMMDD'),
  2.                'America/Sao_Paulo')
  3.   FROM DUAL;
TO_DSINTERVAL 語(yǔ)法:TO_DSINTERVAL(C)
說明:將符合特定格式的字符串C轉(zhuǎn)換成INTERVALDAY TO SECOND類型的數(shù)據(jù)
例句:
  1. SELECT SYSDATE + TO_DSINTERVAL('1000:00:00') A
  2.   FROM DUAL;
TO_TIMESTAMP 語(yǔ)法:TO_TIMESTAMP(x[,format])
說明:把字串表達(dá)式X轉(zhuǎn)換成timestamp類型可以使用format指定格式
例句:
  1. SELECT TO_TIMESTAMP('19880719','YYYYMMDD')
  2.   FROM DUAL;
TO_TIMESTAMP_TZ 語(yǔ)法:TO_TIMESTAMP_TZ(x[,format])
說明:把字串表達(dá)式X轉(zhuǎn)換成timestamp with time zone類型可以使用format指定格式
例句:
  1. SELECT TO_TIMESTAMP_TZ('1988-07-19 07:10:10.12320',
  2.                        'YYYY-MM-dd HH24:MI:SS.FF') A
  3.   FROM DUAL;
TO_YMINTERVAL 語(yǔ)法:TO_YMINTERVAL(C)
說明:將符合特定格式的字符串C轉(zhuǎn)換成INTERVALYEAR TO MONTH類型的數(shù)據(jù)
例句:
  1. SELECT SYSDATE+TO_YMINTERVAL('01-13') A
  2.   FROM DUAL;
TZ_OFFSET 語(yǔ)法:TZ_OFFSET(time_zone)
說明:按照最小時(shí)哈分鐘返回time_zone的偏置時(shí)間
例句:
  1. SELECT TZ_OFFSET('America/New_York')
  2.   FROM DUAL;

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI