问题和解决方法
遇到的问题也很简单。
表1每小时整点统计一次,不删除历史统计数据,统计时间字段为createdtime。
前台展示时,根据最后统计的数据处理展示。
查询sql为:
….. where createdtime = (select max(createdtime) from 表1)….
但是后来发现,统计时间有时候会超过一秒,导致10:00开始统计,有些数据的createtime = '….. 10:00:00',有些数据的createtime = '….. 10:00:01',导致前台展示不准确。
用了一个比较笨的办法解决,也是不是太严谨的办法解决,因为确定统计最长时间也就是1-2秒,所以将查询sql改为:
….. where createdtime > (select max(createdtime)-(5/24/60/60) from 表1)….
查询最晚的统计时间,计算前五秒得到一个时间,查询sql createdtime > 这个计算后的时间。
Oracle时间日期操作
sysdate+(5/24/60/60) 在系统时间基础上延迟5秒
sysdate+5/24/60 在系统时间基础上延迟5分钟
sysdate+5/24 在系统时间基础上延迟5小时
sysdate+5 在系统时间基础上延迟5天
add_months(sysdate,-5) 在系统时间基础上延迟5月
add_months(sysdate,-5*12) 在系统时间基础上延迟5年
上月末的日期:select last_day(add_months(sysdate, -1)) from dual;
本月的最后一秒:select TRUNC(add_months(sysdate,1),'MM') – 1/24/60/60 from dual
本周星期一的日期:select trunc(sysdate,'day')+1 from dual
年初至今的天数:select ceil(sysdate – trunc(sysdate, 'year')) from dual;
今天是今年的第几周 :select to_char(sysdate,'fmww') from dual
今天是本月的第几周:SELECT TO_CHAR(SYSDATE,'WW') – TO_CHAR(TRUNC(SYSDATE,'MM'),'WW') + 1 AS "weekOfMon" FROM dual
本月的天数:SELECT to_char(last_day(SYSDATE),'dd') days FROM dual
今年的天数:select add_months(trunc(sysdate,'year'), 12) – trunc(sysdate,'year') from dual
下个星期一的日期:SELECT Next_day(SYSDATE,'monday') FROM dual
判断当前时间是上午下午还是晚上
SELECT CASE
WHEN to_number(to_char(SYSDATE,'hh24')) BETWEEN 6 AND 11 THEN '上午'
WHEN to_number(to_char(SYSDATE,'hh24')) BETWEEN 11 AND 17 THEN '下午'
WHEN to_number(to_char(SYSDATE,'hh24')) BETWEEN 17 AND 21 THEN '晚上'
END
FROM dual;
1.文章《如何查看oracle时间、如何查看oracle有哪些用户…》援引自互联网,为网友投稿收集整理,仅供学习和研究使用,内容仅代表作者本人观点,与本网站无关,侵删请点击页脚联系方式。
2.文章《如何查看oracle时间、如何查看oracle有哪些用户…》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
相关推荐
- . 现代买票为什么带上携程保险
- . 潮阳怎么去广州南站
- . 湖南马拉河怎么样
- . 烧纸为什么到三岔路口
- . 百色为什么这么热
- . 神州租车怎么样
- . 芜湖方特哪个适合儿童
- . 护肤品保养液是什么类目
- . 早晚的护肤保养有哪些项目
- . 女孩护肤品怎么保养的最好