Oracle修炼路程--日期函数及转换函数

一 日期函数

修改oracle默认的日期格式:

SQL> alter session set NLS_DATE_FORMAT='YYYY-MM-DD';

会话已更改。

SQL> SELECT SYSDATE FROM DUAL;

SYSDATE
----------
2020-04-13

a) sysdate:获取当前时间

SQL> select sysdate from dual;

SYSDATE
--------------
13-4-20

SQL> select sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

SYSDATE        TO_CHAR(SYSDATE,'YY
-------------- -------------------
13-4月 -20     2020-04-13 09:06:20

SQL> select sysdate,to_char(sysdate,'yyyy') from dual;

SYSDATE        TO_C
-------------- ----
13-4月 -20     2020

SQL> select sysdate,to_char(sysdate,'mm') from dual;

SYSDATE        TO
-------------- --
13-4月 -20     04

SQL> select sysdate,to_char(sysdate,'dd') from dual;

SYSDATE        TO
-------------- --
13-4月 -20     13

SQL> select sysdate,to_char(sysdate,'day') from dual;

SYSDATE        TO_CHAR(S
-------------- ---------
13-4月 -20     星期一

SQL> select sysdate,to_char(sysdate,'hh24') from dual;

SYSDATE        TO
-------------- --
13-4-20     09

b) last_day(日期):求出指定日期所属月的最后一天;

SQL> select last_day(sysdate) as 当月最后一天  from dual;

当月最后一天
--------------
30-4-20

c) next_day(日期,‘星期几’);~求指定日期下个的星期X

SQL> select next_day(sysdate,'星期三') from dual;

NEXT_DAY(SYSDA
--------------
15-4-20

SQL> select next_day(sysdate,'星期一') from dual;

NEXT_DAY(SYSDA
--------------
20-4-20

SQL> select next_day(sysdate,'星期二') from dual;

NEXT_DAY(SYSDA
--------------
14-4-20

d) add_month(日期,X)::
含义:日期的月份+X

SQL> select add_months(m.hiredate,-1) from emp m;

ADD_MONTHS(M.H
--------------
20-2-85
17-11-80
20-1-81
22-1-81
02-3-81
28-8-81
01-4-81
09-5-81
19-3-87
17-10-81
08-8-81
23-4-87
03-11-81
03-11-81
23-12-81

已选择15行。

--查询雇用日期上一年的入职人员信息;

```sql
SQL> select add_months(hiredate,-12) from emp;

ADD_MONTHS(HIR
--------------
20-3-84
17-12-79
20-2-80
22-2-80
02-4-80
28-9-80
01-5-80
09-6-80
19-4-86
17-11-80
08-9-80
23-5-86
03-12-80
03-12-80
23-1-81

已选择15行。

e)systimestamp

SQL> select systimestamp from dual;

SYSTIMESTAMP
---------------------------------------------------------------------------
13-4-20 11.17.03.478000 上午 +08:00

二 转换函数
a) to_char()
用法:将对象转化为字符串

SQL> select to_char(sysdate,'yyyy--mm--dd hh24:mm:ss') from dual;

TO_CHAR(SYSDATE,'YYYY
---------------------
2020--04--13 15:04:54


b) to_date

SQL> select to_date('2020-04-13 13:14:20','yyyy-mm-dd HH24:mi:ss') from dual;

TO_DATE('2020-
--------------
13-4月 -20



```sql
--求具体的时间是周几;
SQL> select to_char(to_date('1987-05-17','yyyy-mm-dd'),'day') from dual;

TO_CHA
------
星期日
 
--求两个具体日期的时间间隔;

SQL> select floor(sysdate - to_date('20020405','yyyyddmm')) from dual;

FLOOR(SYSDATE-TO_DATE('20020405','YYYYDDMM'))
---------------------------------------------
                                         6554

c) to_number
字符换数字;
在这里插入图片描述

SQL> select to_number('123,456.78','999999d999') from dual;

TO_NUMBER('123,456.78','999999D999')
------------------------------------
                           123456.78
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值