管理不同时区的数据
一、设置时区
1、数据库时区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) 验证
SELECT DBTIMEZONE FROM DUAL;
2、会话时区
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) 验证
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的偏置时间 | |
例句:
|
创新互联是一家从事企业网站建设、成都网站建设、网站设计、行业门户网站建设、网页设计制作的专业网站设计公司,拥有经验丰富的网站建设工程师和网页设计人员,具备各种规模与类型网站建设的实力,在网站建设领域树立了自己独特的设计风格。自公司成立以来曾独立设计制作的站点1000多家。
标题名称:管理不同时区的数据
文章起源:http://scyingshan.cn/article/jejgcc.html