PLSQL 日期函数

8--日期的表达方式
1.date '年-月-日'
2.to_date(str,'格式')
3.'日-某月-年'     如:'8-7月-2021'     --只能用于限定


select*
from emp
where hiredate='17-12月-1980'

1.to_char(日期,'格式')     提取日期中的元素            日期→字符型
格式:
yyyy    年
mm      月
dd      日
hh|hh12 12小时制
hh24    24小时制
mi      分钟
ss      秒
q       季度

day|dy  星期几    --汉字型
d       星期几    --数字型

1       星期日
2       星期一
3       星期二
...
7       星期六

sssss   当前秒是当天的第几秒
ddd     当前天是当年的第几天

如果在格式中需要用到中文时,需要加双引号

select to_char(sysdate,'yyyy'),to_char(sysdate,'mm'),
       to_char(sysdate,'day'),to_char(sysdate,'d'),
       to_char(sysdate,'q'),to_char(sysdate,'yyyy"年"mm"月"dd"日"'),
       to_char(sysdate,'sssss'),to_char(sysdate,'ddd')
from dual


--查询30天后是星期几
select to_char(sysdate+30,'day')
from dual


--查询当前秒是当年的第几秒
select (to_char(sysdate,'ddd')-1)*24*60*60+to_char(sysdate,'sssss')
from dual


--查询所有闰年入职的员工信息
1.一年有多少天
select to_char(to_date(to_char(sysdate,'yyyy')||'-12-31','yyyy-mm-dd'),'ddd')
from dual


select *
from emp
where to_char(to_date(to_char(hiredate,'yyyy')||'-12-31','yyyy-mm-dd'),'ddd')=366

2.二月有多少天
select to_char(to_date(to_char(sysdate,'yyyy')||'-3-1','yyyy-mm-dd')-1,'dd')
from dual


select *
from emp
where to_char(to_date(to_char(hiredate,'yyyy')||'-3-1','yyyy-mm-dd')-1,'dd')=29

3.定义法:如果年份能被4整除且不能被100整除则为平闰年
         如果年份能被400整除则为世纪闰年
         否则为平年


select *
from emp
where mod(to_char(hiredate,'yyyy'),4)=0 and mod(to_char(hiredate,'yyyy'),100)!=0
      or
      mod(to_char(hiredate,'yyyy'),400)=0


2.to_char(数,'格式')       格式化数字
会自动的四舍五入,会自动补零
格式
9:占位符
0:占位符   (一般用在个位)
$:美元
L:本地货币

select to_char(123456789,'999,000,990'),
       to_char(3.14,'9.999'),
       to_char(0.12,'0.99'),
       to_char(3.14,'$9.999'),
       to_char(3.14,'L9.999')
from dual

--查询(100-(员工编号-经理编号))的绝对值是部门编号的多少倍
--(结果四舍五入保留两位小数)
select to_char(abs(100-(empno-mgr))/deptno,'990.99')
from emp

--查询员工表每个人的工资增长12.55%后的工资
--四舍五入保留两位小数并带上美元符号
select to_char(sal+sal*0.1255,'$9999990.99')
from emp


3.to_char(参数)      将任意类型的参数转为字符型

select to_char(123),to_char(date'2021-7-8'),to_char('abc')
from dual

小结
┌字符函数┌concat(str1,str2)     连接字符串
│        ├to_single_byte(str)   转半宽
│        └to_multi_byte(str)    转全宽
├日期函数┌sysdate
│        ├...
├转换函数┌ascii(str)            将字符转为阿斯克码         字符型→数值型
│        ├chr(数)               将阿斯克码转为字符         数值型→字符型
│        ├to_number(str)        将纯数字的字符串转为数值型 字符型→数值型
│        ├to_date(str,'格式')   将字符串转为日期格式       字符型→日期型
│        ├to_char┌to_char(日期,'格式')  提取日期中的元素   日期型→字符型
│        │       ├to_char(数,'格式')    格式化数字         数值型→字符型
└        └       └to_char(参数)         将任意数据类型转为字符型 

上一篇:angular从0到1:组件和标签的显示与隐藏


下一篇:oracle11g 监听日志超过4g,plsql登录失败解决方案