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(参数) 将任意数据类型转为字符型