第四周学习笔记DAY.1

日期函数


1.sysdate     --返回系统时间

select sysdate
from dual

2.日期计算的规则
日期加减数字=日期加减天数
日期-日期=日期相差的总天数

select sysdate-1
from dual


select date'2024-3-26' - date'2024-1-1'
from dual


3.add_months(日期,数字)    日期加减数字个月

select add_months(sysdate,-3)
from dual


4.months_between(日期1,日期2)    日期之间相差的总月数

select months_between(date'2024-3-26',date'2024-1-1')
from dual


5.next_day(日期,星期几|数字)    求下一个星期几

select next_day(sysdate,'星期一'),
       next_day(sysdate,2),
       next_day(sysdate,4)
from dual

一周之初是星期日
星期日    1
星期一    2
...
星期六    7

练习:求下一周的星期三
先求到本周日,再求本周日的下一个星期几
select next_day(next_day(sysdate-1,'星期日'),'星期三')
from dual


6.last_day(日期)     --返回日期的月末

select last_day(sysdate)
from dual


trunc  :截断日期    
按照日期格式,将日期截断到日期格式之初

yyyy       年
mm         月
dd         日
hh|hh24    小时
mi         分钟
ss         秒
q          季度


语法:
trunc(日期,格式)

select trunc(sysdate,'yyyy'),
       trunc(sysdate,'mm'),
       trunc(sysdate,'q')
from dual


--判断今年是平年还是闰年

--求今年有多少天
select add_months(trunc(sysdate,'yyyy'),12)-trunc(sysdate,'yyyy') 今年天数
from dual

select to_char(add_months(trunc(sysdate,'yyyy'),12)-1,'ddd')
from dual


--求二月有多少天
select add_months(trunc(sysdate,'yyyy'),2)-add_months(trunc(sysdate,'yyyy'),1)
from dual


--二月的最后一天
select to_char(add_months(trunc(sysdate,'yyyy'),2)-1,'dd')
from dual

select to_char(last_day(add_months(trunc(sysdate,'yyyy'),1)),'dd')
from dual


to_char(日期,'格式')   提取日期中的元素

select to_char(sysdate,'yyyy')
from dual

格式:
yyyy       年
mm         月
dd         日
hh|hh24    小时
mi         分钟
ss         秒
q          季度
ddd        当前天是当年的第几天
sssss      当前秒时当天的第几秒


--把emp表中的hiredate,当做员工的出生日期
--求每位员工今年几岁几个月零几天


--几岁
select trunc(months_between(sysdate,hiredate)/12) aa
from emp

--几月
select trunc(months_between(sysdate,hiredate)-trunc(months_between(sysdate,hiredate)/12)*12) aa
from emp


--几天      oracle  按照一个月31天去计算

select trunc(mod(months_between(sysdate,hiredate)-trunc(months_between(sysdate,hiredate)/12)*12,1)*31) aa
from emp

mod(数1,数2)   数1除以数2的余数



select ename,
       trunc(months_between(sysdate,hiredate)/12)||'岁'||
       trunc(months_between(sysdate,hiredate)-trunc(months_between(sysdate,hiredate)/12)*12)||'个月零'||
       trunc(mod(months_between(sysdate,hiredate)-trunc(months_between(sysdate,hiredate)/12)*12,1)*31)||'天' 年龄
from emp


select 'a'||'b'||'1'||'中国'
from dual


--求下周的星期几
--求平闰年
--求几岁几月零几天

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值