Oracle日志:trunc日期的使用

Oracle TRUNC函数用于处理日期,返回指定格式或指定时间点。文章介绍了其功能、语法格式,并通过实例展示了如何获取年份、季度、月份、周及小时的第一天,以及如何结合其他函数获取特定日期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Oracle日志:trunc日期的使用

一 .功能

用于处理日期返回指定格式或者所需要指定的值

二. 语法格式

trunc(date,param)
date:日期数据
param:指定的格式,缺省的代表是当天的0点

三.样例

trunc(date)缺省的使用

select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') "系统当前时间",
       to_char(trunc(sysdate), 'yyyy-mm-dd hh24:mi:ss') "当天的凌晨12."
  from dual t;

在这里插入图片描述
Ps:这里的dual是oracle的系统表,常吧它称为伪表,具体的用途点这里点这里

返回当年的第一天

select to_char(trunc(sysdate, 'yy'),'yyyy-mm-dd') "当年第一天" from dual;
select to_char(trunc(sysdate, 'yyyy'),'yyyy-mm-dd') "当年第一天" from dual;
select to_char(trunc(sysdate, 'year'),'yyyy-mm-dd') "当年第一天" from dual;

在这里插入图片描述
季度相关
tips:一年有四个季度,也就是没三个月称之为一个季度

select to_char(trunc(sysdate, 'q'),'yyyy-mm-dd') "当前季度的第一天" from dual;

在这里插入图片描述
那如果我想要看当前季度的最后一天的日期的话,那就只要加三个月就是下个季度啦,然后再减一天或者减一个小时就能显示当个季度的最后一天,同理查看任何季度都能用这个方法

select to_char(trunc(add_months(sysdate,3),'q')-1,'yyyy-mm-dd hh24:mi:ss') "当前季度的最后一天" from dual;

在这里插入图片描述
查看上个季度最后一天的23.30分

--因为日期的单位是按照天来算的,所以如果要将其转换为分钟数要对其相应的单位换算:一天有24个小时,所以半个小时也就是30分钟则为0.5/24*60
select to_char(trunc(sysdate,'q')-0.5/24,'yyyy-mm-dd hh24:mi:ss') "上个季度的最后一天" from dual;

在这里插入图片描述
月份相关
返回当前月第一天

select to_char(trunc(sysdate,'m'),'yyyy-mm-dd ') "当前月第一天" from dual;
select to_char(trunc(sysdate,'month'),'yyyy-mm-dd ') "当前月第一天" from dual;

在这里插入图片描述
查看当前月的最后一天

--查看当前月最后一天可以用last_day函数
select to_char(trunc(last_day(sysdate)),'yyyy-mm-dd ') "当前月最后一天" from dual;

在这里插入图片描述
周数相关
返回当前周的第一天,星期天为第一天
ps:菜鸡我的当前系统时间为2020.7.14 星期二

select to_char(trunc(sysdate,'d'),'yyyy-mm-dd ') "本周的第一天" from dual;
select to_char(trunc(sysdate,'day'),'yyyy-mm-dd ') "本周的第一天" from dual;

在这里插入图片描述
查看下个星期五的日期

--next_day:返回下一个星期几的日期,这里第一天代表的是星期天,所以星期五就是第六天了
select to_char(next_day(trunc(sysdate,'d')+7,6),'yyyy-mm-dd ') "下周星期五" from dual;


在这里插入图片描述

小时相关

select to_char(trunc(sysdate,'hh'),'yyyy-mm-dd hh24.') "当前小时" from dual;
select to_char(trunc(sysdate,'hh24'),'yyyy-mm-dd hh24.') "当前小时" from dual;

在这里插入图片描述
分钟相关

select to_char(trunc(sysdate,'mi'),'yyyy-mm-dd hh24.mi') "当前分钟" from dual;

在这里插入图片描述

总结

总的来说trunc函数能用来处理日期,比如显示年份的第一天,月份的第一天,然后使用add_months,last_day,next_day等函数和进行一些数值的相应转换就能得到相关的日期了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值