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

database

月 select extract(month from sysdate) from dual;

日 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;

 

 

TO_DATE(sysdate,"yyyy-mm-dd")方法转换时间格式时会报错,文字与字符串格式不匹配,

可以改成TO_CHAR(sysdate,"yyyy-mm-dd")

以上是 oracle日期,获取年月日等函数、日期函数、时区 的全部内容, 来源链接: utcz.com/z/533630.html

回到顶部