oracle日期,获取年月日等函数、日期函数、时区

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hzq450013155/article/details/81212338

获取年月日

  1. select extract(year from sysdate) from dual;

  2. select extract(month from sysdate) from dual;

  3. select extract(day from sysdate) from dual;

格式化日期:

TO_CHAR(SYSDATE(),'YY/MM/DD HH24:MI:SS)

或 TO_DATE(SYSDATE(),'YY/MM/DD HH24:MI:SS)

select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;

select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;

select to_char(sysdate,'yy-mm-dd hh24:mi:ss') from dual

select to_date('2018-07-25 15:53:13','yyyy-mm-dd,hh24:mi:ss') from dual

如果把上式写成下面形式则会报错,因为小时hh是12进制。

 select to_date('2018-07-25 15:54:34','yyyy-mm-dd,hh:mi:ss') from dual

获取某月天数

select to_char(last_day(to_date('2010-11-1','YYYY-MM-DD')),'DD') from dual;

oracle 10g修改默认的日期格式:

alter session set nls_date_format ='yyyy-mm-dd';  
alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss'; 

oracle时区

Oracle 的时区可以分为两种,一种是数据库的时区,一种是 session 时区,也就是客户端连接时的时区(经过实验,连接以后再修改客户端的时区,session 的时区不会更改)。
数据库的时区在创建数据库时可以通过在 create database 语句中加上SET TIME_ZONE = ' { { + | - } hh : mi | time_zone_region } ' 来指定,如果,不指定,默认是按照数据库所在的操作系统时区来设定的。
查看各种时间:
select sysdate,CURRENT_DATE,CURRENT_TIMESTAMP,LOCALTIMESTAMP from dual
查看时区:

select dbtimezone from dual;--数据库时区
select sessiontimezone from dual;--session时区

修改时区:
(东八区)

alter database set time_zone='+08:00';--东八区
ALTER SESSION SET TIME_ZONE = 'Australia/Sydney';--修改session时区
ALTER SESSION SET TIME_ZONE = 'Chile/EasterIsland';--修改session时区
ALTER SESSION SET TIME_ZONE='+08:00';--修改session时区

查询时区差时

TZ_OFFSET ( { 'time_zone_name'
| '{ + | - } hh : mi'
| SESSIONTIMEZONE
| DBTMEZONE }
)

SELECT TZ_OFFSET('US/Eastern') FROM DUAL;
SELECT TZ_OFFSET(DBTIMEZONE) FROM DUAL;

猜你喜欢

转载自blog.csdn.net/hzq450013155/article/details/81212338