ORACLE SQL日期处理

ORACLE SQL日期处理

开发工具与关键技术:Oracle sql*plus 与 PLSQL Developer
作者:蒋紫晨
撰写时间:2019年04月07日

时间日期函数

1.查询时间格式(sql语句)

1.to_date函数
2.to_date的格式:to_date(‘要转换的时间’,’转换成的时间格式’),     两个参数的格式必须匹配,不然会报错。
3.to_char(日期,”转换格式” ) 即把给定的日期按照“转换格式”转换。
    select  to_char(sysdate,'YYYY-MM-DD HH24:MI:SS')  from  dual;

2.查询日期之间的数据 例如查询employees表中出生日期(hire_date)在’'1986-01-01’ 和’ '1988-01-01’之间的数据:

 Select * from employees where hire_date between '1986-01-01' and '1988-01-01';

3.如果对于日期范围不规则的数据需要先转格式,如下

 Select * from employees where to_date(hire_date,'YYYY-MM-DD')between
     to_date('1986-01-01','YYYY-MM-DD') and to_date('1988-01-01','YYYY-MM-DD');

4.TO_CHAR函数对数字的转换,格式如下:

符号名称
9数字
0
$美元符
L人民币(¥)
.小数点
,千位符
SELECT TO_CHAR(salary, '$99,999.00') SALARY  FROM   employees
WHERE  last_name = 'Ernst';

5.last_day(d)关键字 获取包含d的月最后一天的日期

select last_day(sysdate) from dual;

   结果:-- 获取本月最后一天: 2014/5/31 22:46:01
  1. add_months(d, n) 日期d往后推n个月
select add_months(sysdate,2) from dual; 

  结果:-- 日期往后推2个月: 2014/7/20 22:49:36
  1. next_day(d, day)
select next_day(sysdate,2) from dual;   

  -- 日期sysdate之后的第一周中, 指定星期的第2天是什么日期
  1. months_between(f,s) 日期f和s间相差月数
select months_between(sysdate,to_date('2007-04-12','yyyy-mm-dd'))from dual; 
            结果:-- 85.2889874551971

9.获取两个日期间的天数

select floor(sysdate - to_date('20140405','yyyymmdd')) from dual;

10.cast函数

 转换日期格式
    Select cast('20190327'as date) from dual;
    
 转换数字格式
   Select cast('020190327'as number) from dual;

11.只能是系统时间使用day或者是数据库中的列中的日期都能使用

     Select to_char(sysdate, 'day') from dual;
     
    获取sysdate年份或者是数据库中的列中的日期都能使用
    Select to_char(sysdate, 'yyyy') from dual

12.INSERT …INTO… 时间的处理

INSERT INTO 表名(id,name,hire_date)
        Values(100,'用户壹',TO_DATE('21-6月-1989','dd-MON-yyyy'))
        
转换成格式保存进数据库中。

例子: 查询出与当月的员工入职日期的月份相同的人数有多少人数?

Select last_name to_char(sysdate,’mon’),hire_date 
      from employees
      Where  to_char (sysdate,’mon’)= to_char(hire_date,’mon’);

17.提示:日期是不能用加法的

例子: select to_date(sysdate+to_date(2019-03-27,‘yyyy-mm-dd’))from dual;

在这里插入图片描述

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值