ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 在ORACLE中,用SQL语句计算上周的开始日期和结束日期

在ORACLE中,用SQL语句计算上周的开始日期和结束日期

原创 Linux操作系统 作者:100113 时间:2011-12-20 12:20:03 0 删除 编辑
今天做项目时,遇到了一个小问题,就是要求列出在上周录入的所有数据。在下愚钝,想了好一会才实现了这个功能,拿来和大家分享一下。
  具体语句为:
select t.* from 表名 t
where
时间字段>=(select trunc(sysdate-to_char(sysdate,'d')-7+2) from dual)
and
时间字段<=(select trunc(sysdate-to_char(sysdate,'d')+1) from dual)


该语句经测试有效,可以列出上一周的所有记录。

语句分析:
sysdate:系统当前时间

to_char(sysdate,'d'):当天是本周的第几天(在ORACLE中,每周的第一天默认为周日,即:如果是周3,则返回的值为4)

sysdate-to_char(sysdate,'d'):返回的值应是上周6的日期

-7:上周的上周的周6的日期

+2:上周的周1的日期(依据个人习惯,我习惯从周1开始算到周日作为一周)

sysdate-to_char(sysdate,'d')+1:返回上周的周日的日期

trunc():此函数用于去掉sysdate后面的分秒,具体用法可以在网络上找到相关资料

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23353800/viewspace-713609/,如需转载,请注明出处,否则将追究法律责任。

上一篇: Oracle 权限管理
请登录后发表评论 登录
全部评论

注册时间:2011-11-24

  • 博文量
    19
  • 访问量
    51676