比如,两个日期是2018-08-27和2018-08-30,要求27,28, 29,30这四天的日期,我们可以采用下面的SQL来求得:
--oracle 求两个日期之间的所有日期
SELECT TO_CHAR((TO_DATE(KSRQ, 'yyyy-MM-dd') + (ROWNUM - 1)), 'yyyy-MM-dd') DT
FROM DUAL
CONNECT BY ROWNUM <=
(TO_DATE(JSRQ, 'yyyy-MM-dd') - TO_DATE(KSRQ, 'yyyy-MM-dd') + 1)
select
EXTRACT(year FROM to_date('2019-09-24 19:38:45','yyyy-mm-dd hh24:mi:ss'))
-EXTRACT(year FROM to_date('2018-08-23 10:13:01','yyyy-mm-dd hh24:mi:ss')) as diff_years,-- 年
months_between(to_d...
计算年数,是通过计算出月数,然后再除以12;(也许会有更好的办法,目前还不知道)在Oracle中,两个日期直接相减,便可以得到天数;计算月数,需要用到months_between函数;
--oracle 求两个日期之间的所有日期
SELECT TO_CHAR((TO_DATE(KSRQ, 'yyyy-MM-dd') + (ROWNUM - 1)), 'yyyy-MM-dd') DT
FROM DUAL
CONNECT BY ROWNUM <=
(TO_DATE(JSRQ, 'yyyy-MM-dd') - TO_DATE(KSRQ, 'yyyy-MM...
SELECT TO_CHAR(ADD_MONTHS(TO_DATE('2018-01', 'YYYY-MM'), ROWNUM - 1),'YYYY-MM') DAY_ID...
SELECT TO_CHAR(TO_DATE('2020-02-01', 'YYYY-MM-DD') + ROWNUM - 1, 'YYYY-MM-DD') DAY_ID
FROM DUAL
CONNECT BY ROWNUM < TO_DATE('2020-04-01', 'YYYY-MM-DD') - TO_DATE('2020-02-01', 'YYYY-MM-DD') + 1...
SELECT * FROM TEAM_M.BASE_LOG_MAIN WHERE CREATEDT BETWEEN to_date('${date0}','yyyy-mm-dd') AND to_DATE('${date1}', 'yyyy-mm-dd') + 1
Oracle数据库日期范围查询有两种方式:to_char方式和to_date方式,接下来我们通过一个实例来介绍这一过程。我们假设要查询2011-05-02到2011-05-30之间的数据,实现方式如下:
to_date方式:
本节主要介绍了months_between,add_months,next_month,last_day,round,trunc等日期函数,对日期进行各种操作,并举例练习。
--计算两个时间差相差多少秒
select ceil((sysdate-t.transdate)* 24 * 60 * 60),t.transdate,sysdate from esc_trans_log t
--计算两个时间差相差多少分
select ceil((sysdate-t.transdate)* 24 * 60),t.transdate,sysdate from esc_trans_...
时间段间数据查询//返回当天的数据select d.device_name as 设备,d.alert_time 时间 from device d where d.alert_timebetween to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd hh24:mi:ss')and sysdate;--按照每月进行统计s...