全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Oracle查询优化日期运算实例详解

 加减日、月、年

在Oracle中,date类型可以直接加减天数,而加减月份要用add_months函数.

select a.hiredate 雇用日期,
    a.hiredate + 5 加5天,
    a.hiredate - 5 减5天,
    add_months(hiredate, 5) 加5个月,
    add_months(hiredate, -5) 减5个月,
    add_months(hiredate, 5 * 12) 加5年,
    add_months(hiredate, -5 * 12) 减5年
 from emp a where rownum <=1;


雇用日期 加5天 减5天 加5个月 减5个月 加5年 减5年
----------- ----------- ----------- ----------- ----------- ----------- -----------
1980-12-17 1980-12-22 1980-12-12 1981-05-17 1980-07-17 1985-12-17 1975-12-17

加减时、分、秒

上面讲过,date可以直接加减天数,那么1/24就是一小时,分钟与秒的加减类同。

select a.hiredate,
    a.hiredate - 5 / 24 / 60 / 60 减5秒,
    a.hiredate + 5 / 24 / 60 / 60 加5秒,
    a.hiredate - 5 / 24 / 60 减5分钟,
    a.hiredate + 5 / 24 / 60 加5分钟,
    a.hiredate - 5 / 24 减5小时,
    a.hiredate + 5 / 24 加5小时
 from emp a
 where rownum <= 1;

如果执行时,报错

数据库服务器端的编码和客户端字符集编码不一致。

我这边用的数据库西班牙语,不支持中文。

日期间隔之时、分、秒

SQL> select duration,
    duration * 24 间隔小时,
    duration * 24 * 60 间隔分钟,
    duration * 24 * 60 * 60 间隔秒
 from (select (max(a.hiredate) - min(a.hiredate)) as duration from emp a where
    a.ename in ('ALLEN', 'WARD')) x;


 DURATION    间隔小时    间隔分钟    间隔秒
---------- ---------- ---------- ----------
     2     48    2880   172800

日期间隔之日、月、年

加减月份用函数 add_months, 而计算月份间隔就要用函数months_between

select max_hd - min_hd 间隔天,
    months_between(max_hd, min_hd) 间隔月,
    months_between(max_hd, min_hd) /12 间隔年
 from (select min(hiredate) min_hd, max(hiredate) max_hd from emp) x;


    间隔天    间隔月    间隔年
---------- ---------- ----------
   2348 77.1935483 6.43279569

计算一年中周内各日期的次数

问题

计算一年中周内各日期(星期日、星期一 ……星期六)的次数。

解决方案

要计算一年中周内各日期分别有多少个,必须:

  1. 生成一年内的所有日期。
  2. 设置日期格式,得到每个日期对应为星期几。
  3. 计数周内各日期分别有多少个。
with x as
 (select level lvl
  from dual
 connect by level <=
       (add_months(trunc(sysdate, 'y'), 12) - trunc(sysdate, 'y')))
select to_char(trunc(sysdate, 'y') + lvl - 1, 'DAY'), count(*)
 from x
 group by to_char(trunc(sysdate, 'y') + lvl - 1, 'DAY');

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Oracle查询优化日期运算  # Oracle  # 日期运算  # oracle 查询当天数据的sql条件写法  # oracle使用to_date查询一周的第一天日期  # Oracle查询最近几天每小时归档日志产生数量的脚本写法  # oracle实现按天  #   #   # 季度  # 年查询排序方法  # Oracle 获取上周一到周末日期的查询sql语句  # Oracle中查询本月星期5的所有日期列表的语句  # oracle查询截至到当前日期月份所在年份的所有月份  # Oracle实现查询2个日期所跨过的月份列表/日期列表的方法分析  # oracle实现动态查询前一天早八点到当天早八点的数据功能示例  # 加减  # 个月  # 要用  # 可以直接  # 中周  # 有多少个  # 西班牙语  # 之时  # 希望能  # 不支持  # 报错  # 谢谢大家  # 之日  # 一年内  # 讲过  # 我这边  # 客户端  # 星期日  # rownum  # to_char 


相关文章: 历史网站制作软件,华为如何找回被删除的网站?  开源网站制作软件,开源网站什么意思?  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  怀化网站制作公司,怀化新生儿上户网上办理流程?  广州营销型建站服务商推荐:技术优势与SEO优化解析  如何在Ubuntu系统下快速搭建WordPress个人网站?  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  在线制作视频的网站有哪些,电脑如何制作视频短片?  如何登录建站主机?访问步骤全解析  学校为何禁止电信移动建设网站?  香港网站服务器数量如何影响SEO优化效果?  如何高效完成独享虚拟主机建站?  小型网站建站如何选择虚拟主机?  学校建站服务器如何选型才能满足性能需求?  Python路径拼接规范_跨平台处理说明【指导】  建站之星北京办公室:智能建站系统与小程序生成方案解析  宁波自助建站系统如何快速打造专业企业网站?  建站之星安装后如何配置SEO及设计样式?  建站之星如何助力企业快速打造五合一网站?  建站之星代理商如何保障技术支持与售后服务?  c++ stringstream用法详解_c++字符串与数字转换利器  昆明高端网站制作公司,昆明公租房申请网上登录入口?  公司网站制作价格怎么算,公司办个官网需要多少钱?  盐城做公司网站,江苏电子版退休证办理流程?  制作国外网站的软件,国外有哪些比较优质的网站推荐?  如何通过服务器快速搭建网站?完整步骤解析  如何零基础开发自助建站系统?完整教程解析  建站之星导航菜单设置与功能模块配置全攻略  海南网站制作公司有哪些,海口网是哪家的?  建站VPS配置与SEO优化指南:关键词排名提升策略  如何安全更换建站之星模板并保留数据?  如何在VPS电脑上快速搭建网站?  c# 在高并发场景下,委托和接口调用的性能对比  唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?  如何快速选择适合个人网站的云服务器配置?  网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?  制作企业网站建设方案,怎样建设一个公司网站?  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  如何通过商城自助建站源码实现零基础高效建站?  企业网站制作公司网页,推荐几家专业的天津网站制作公司?  如何解决VPS建站LNMP环境配置常见问题?  如何在局域网内绑定自建网站域名?  ,有什么在线背英语单词效率比较高的网站?  建站之星后台管理如何实现高效配置?  h5网站制作工具有哪些,h5页面制作工具有哪些?  如何设置并定期更换建站之星安全管理员密码?  制作网站公司那家好,网络公司是做什么的?  如何在阿里云购买域名并搭建网站?  建站之星安装模板失败:服务器环境不兼容? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。