首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用系统日期获取Mon

使用系统日期获取Mon
EN

Stack Overflow用户
提问于 2013-11-03 22:05:48
回答 2查看 73关注 0票数 0

如何使用sysdate在某一周的任何一天获取当前的业务周?我想要一条sql语句,它使我在不需要5个不同sql语句的情况下,就可以在当前一周内活动。这个是可能的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-04 10:09:22

代码语言:javascript
复制
SELECT  SYSDATE
FROM    DUAL
;
-- 2013-11-04 11:06:14

SELECT  TRUNC(SYSDATE+3) - (TO_CHAR(SYSDATE+3, 'D') - 1)
,       TRUNC(SYSDATE+3) - (TO_CHAR(SYSDATE+3, 'D') - 5)
FROM    DUAL
;
-- 2013-11-04 00:00:00  2013-11-08 00:00:00


SELECT  TRUNC(SYSDATE+2) - (TO_CHAR(SYSDATE+2, 'D') - 1)
,       TRUNC(SYSDATE+2) - (TO_CHAR(SYSDATE+2, 'D') - 5)
FROM    DUAL
;
-- 2013-11-04 00:00:00  2013-11-08 00:00:00


SELECT  TRUNC(SYSDATE+1) - (TO_CHAR(SYSDATE+1, 'D') - 1)
,       TRUNC(SYSDATE+1) - (TO_CHAR(SYSDATE+1, 'D') - 5)
FROM    DUAL
;
-- 2013-11-04 00:00:00  2013-11-08 00:00:00


SELECT  TRUNC(SYSDATE) - (TO_CHAR(SYSDATE, 'D') - 1)
,       TRUNC(SYSDATE) - (TO_CHAR(SYSDATE, 'D') - 5)
FROM    DUAL
;
-- 2013-11-04 00:00:00  2013-11-08 00:00:00
票数 1
EN

Stack Overflow用户

发布于 2013-11-04 00:13:54

我认为您必须使用日()函数来实现这一点。要在1 SQL语句中执行此函数,您必须尝试一些此函数的组合。

这是一些伪码。我还没有测试过这个,但应该足够让你开始了。

代码语言:javascript
复制
where my_operating_date >= next_day( trunc(sysdate) - interval '7' day, 'MON')
and my_operating_date <  next_day( trunc(sysdate) - interval '2'  day, 'FRI')

我修改了来自这根线的pseduo代码,该代码满足了前一周的类似要求。关于这个答案的解释应该能让你走。一定要对边缘情况进行大量的测试,比如现在是星期一还是星期五。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19758743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档