oracle怎么取最近时间函数
发布网友
发布时间:2022-05-02 11:40
我来回答
共2个回答
懂视网
时间:2022-05-02 16:02
select sysdate 当时日期,
round(sysdate) 最近0点日期,
round(sysdate,‘day‘) 最近星期日,
round(sysdate,‘month‘) 最近月初,
round(sysdate,‘q‘) 最近季初日期,
round(sysdate,‘year‘) 最近年初日期 from dual;
7.next_day(d1[,c1]) 返回日期d1在下周,星期几(参数c1)的日期
d1日期型,c1为字符型(参数),c1默认为j(即当前日期);c1对应:星期一,星期二,星期三……星期日
select sysdate 当时日期,
next_day(sysdate,‘星期一‘) 下周星期一,
next_day(sysdate,‘星期二‘) 下周星期二,
next_day(sysdate,‘星期三‘) 下周星期三,
next_day(sysdate,‘星期四‘) 下周星期四,
next_day(sysdate,‘星期五‘) 下周星期五,
next_day(sysdate,‘星期六‘) 下周星期六,
next_day(sysdate,‘星期日‘) 下周星期日 from dual;
8.extract(c1 from d1) 日期/时间d1中,参数(c1)的值
SELECT SYSDATE FROM DUAL; --15-1月 -18(年月日)
SELECT SYSTIMESTAMP FROM DUAL; --15-1月 -18 11.20.50.210000000 上午 +08:00(年月日时分秒)
select
extract(hour from timestamp ‘2001-2-16 2:38:40 ‘ ) 小时,
extract(minute from timestamp ‘2001-2-16 2:38:40 ‘ ) 分钟,
extract(second from timestamp ‘2001-2-16 2:38:40 ‘ ) 秒,
extract(DAY from timestamp ‘2001-2-16 2:38:40 ‘ ) 日,
extract(MONTH from timestamp ‘2001-2-16 2:38:40 ‘ ) 月,
extract(YEAR from timestamp ‘2001-2-16 2:38:40 ‘ ) 年
from dual;
select
extract(DAY from date ‘2001-2-16 ‘ ) 日,
extract(MONTH from date ‘2001-2-16 ‘ ) 月,
extract(YEAR from date ‘2001-2-16 ‘ ) 年
from dual;
9.localtimestamp 返回会话中的日期和时间
select localtimestamp from dual;
10.current_timestamp 以timestamp with time zone数据类型返回当前会话时区中的当前日期
select current_timestamp from dual;
11.current_date 返回当前会话时区中的当前日期
select current_date from dual;
12.dbtimezone 返回时区
1)to_char(value,‘format’)将值转换成指定的字符串格式,常用在日期上
select to_char(sysdate,”yyyy-mm-dd hh:mm:ss”) from dual;
select to_char(sysdate,‘yyyy‘) from dual; //获取时间的年
select to_char(sysdate,‘mm‘) from dual; //获取时间的月
select to_char(sysdate,‘dd‘) from dual; //获取时间的日
select to_char(sysdate,‘hh24‘) from dual; //获取时间的24时
select to_char(sysdate,‘mi‘) from dual; //获取时间的分
select to_char(sysdate,‘ss‘) from dual; //获取时间的秒
2)返回指定日期所在某期间的第一天
--trunc(d1[,c1])
select trunc(sysdate) from dual; --无参数,返回本天0点日期
select trunc(sysdate,‘day‘) from dual; --返回本周星期日的日期
select trunc(sysdate,‘month‘) from dual; --返回本月的日期
select trunc(sysdate,‘q‘) from dual; --返回本季的日期
select trunc(sysdate,‘year‘) from dual; --返回本年的日期
3)日期之间相差的天数
select to_date(‘08/06/2018‘,‘mm/dd/yyyy‘)-to_date(‘07/01/2017‘,‘mm/dd/yyyy‘) from dual;
4)日期之间相差的月数,函数:months_between
--months_between(date1,date2)
--如果两个日期中“日”相同,或着这两日分别是所在月的最后一天,那么返回的结果是整数。否则,返回的结果将包含一个分数部分(以31天为一月计算)
select months_between(to_date(‘01/31/2015‘,‘mm/dd/yyyy‘),to_date(‘12/31/2014‘,‘mm/dd/yyyy‘)) "MONTHS" FROM DUAL; --1(两个日期中“日”相同)
select months_between(to_date(‘02/28/2015‘,‘mm/dd/yyyy‘),to_date(‘12/31/2014‘,‘mm/dd/yyyy‘)) "MONTHS" FROM DUAL; --2(这两日分别是所在月的最后一天)
select months_between(to_date(‘01/01/2015‘,‘mm/dd/yyyy‘),to_date(‘12/31/2014‘,‘mm/dd/yyyy‘)) "MONTHS" FROM DUAL; --0.0322580645161290322580645161290322580645
select floor(months_between(to_date(‘01/01/2015‘,‘mm/dd/yyyy‘),to_date(‘12/31/2014‘,‘mm/dd/yyyy‘))) "MONTHS" FROM DUAL; --0
5)日期之间相差的年数
计算年数,是通过计算出月数,然后再除以12;
select floor(months_between(to_date(‘01/01/2015‘,‘mm/dd/yyyy‘),to_date(‘12/31/2014‘,‘mm/dd/yyyy‘)))/12 "MONTHS" FROM DUAL;
oracle时间函数
标签:部分 second timezone char sys post next 日期 基础上
热心网友
时间:2022-05-02 13:10
日期和字符转换函数用法(to_date,to_char)
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from al; //日期转化为字符串
select to_char(sysdate,'yyyy') as nowYear from al; //获取时间的年
select to_char(sysdate,'mm') as nowMonth from al; //获取时间的月
select to_char(sysdate,'dd') as nowDay from al; //获取时间的日
select to_char(sysdate,'hh24') as nowHour from al; //获取时间的时
select to_char(sysdate,'mi') as nowMinute from al; //获取时间的分
select to_char(sysdate,'ss') as nowSecond from al; //获取时间的秒