oracle中关于⽇期的获取
最近的⼀个功能定时任务要求在当天凌晨2点⽣成前⼀天的数据。涉及到数据库时间的操作,特此记录⼀下,整理关于⽇期获取的笔记如下-- 获取当前系统的前⼀天⽇期0点到23:59:59的时间
select  TRUNC(SYSDATE -1) , TRUNC(SYSDATE -1)+1-1/86400from dual;
--获取当天时间的0时0分
select TRUNC(SYSDATE) FROM dual;
--获取当天时间的23点59分59秒(在当天0时0分0秒的基础上加1天后再减1秒)
SELECT TRUNC(SYSDATE)+1-1/86400FROM dual;
--取得当前⽇期是⼀个星期中的第⼏天,注意:星期⽇是第⼀天
select to_char(sysdate,'D'),to_char(sysdate,'DAY') from dual;
--获取当前⽉的第⼀天和最后⼀天
select to_char(sysdate,'yyyy-mm')||'-01' firstday,to_char(last_day(sysdate),'yyyy-mm-dd') lastday from dual;
--获取当前⽉份
SELECT EXTRACT(MONTH FROM sysdate) FROM DUAL;
--求出当前⽇期的下⼀个指定礼拜是⼏号,意思就是当前⽇期的下⼀个星期⼀是⼏号
select next_day(sysdate,'星期⼀') from dual;
--返回当前⽇期
select trunc(sysdate)from dual;
--返回当前⼩时
select trunc(sysdate,'hh')from dual;
--返回当前时间的分钟,没有秒的精确,只有毫秒。
select trunc(sysdate,'mi')from dual;
--返回当前星期的第⼀天(为星期天,⼯作的第⼀天为星期⼀)
select trunc(sysdate,'d')from dual;
oracle 时间转换--返回当前年份的第⼀天
select trunc(sysdate,'yyyy')from dual;
--返回当前⽉份的第⼀天
select trunc(sysdate,'mm')from dual;
--求当前⽉份的最后⼀天
select last_day(sysdate) from dual;
--求当前⽇期添加⽉份过后的⽇期
select add_months(sysdate,2) from dual;
--取出当前⽇期的年份
select extract(year from sysdate) from dual;
--取出当前⽇期的⽉份
select extract(month from sysdate) from dual;
--取出当前⽇期的天数
select extract(day from sysdate) from dual;
--拼接⽇期,将年⽉⽇从系统中取出然后拼接年,⽉,⽇
select extract(year from sysdate) ||'年'||extract(month from sysdate) ||'⽉'||extract(day from sysdate) ||'⽇'from dual;
--时间戳以获取精确的时间
select systimestamp as国际时间from dual;
--以指定格式获取⽇期
select TO_CHAR(sysdate,'yyyy-mm-dd') from dual;
--获取当前时间⼀个⽉之后的时间
select add_months(sysdate,1)from dual;
--获取到当前时间半年之后的时间
select add_months(sysdate,6)from dual;
--to_char()函数,将⽇期转换为字符串表⽰
select to_char(sysdate,'yyyy"年"mm"⽉"dd"⽇"')from dual;
--将数字转换为指定格式,例如转换为货币形式
select to_char(123,'$9,999,999.99')from dual;
--to_number()函数,将⼀个数字字符串转换为数字,以便进⾏计算
select to_number('1234567.08') from dual;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。