db2中如何获取当前日期前一周的日期
比如今天日期是2013-03-27星期三我要得到上周7天的日期2013-03-182013-03-192013-03-202013-03-212013-03-222013...
比如今天日期是2013-03-27 星期三
我要得到上周7天的日期
2013-03-18
2013-03-19
2013-03-20
2013-03-21
2013-03-22
2013-03-23
2013-03-24 展开
我要得到上周7天的日期
2013-03-18
2013-03-19
2013-03-20
2013-03-21
2013-03-22
2013-03-23
2013-03-24 展开
2013-03-27
展开全部
SELECT
CURRENT_DATE - (DAYOFWEEK(CURRENT_DATE) - 2 + (ROW_NUMBER() OVER (ORDER BY 1) ) ) DAY AS result
FROM
SYSIBM.SYSCOLUMNS
fetch first 7 rows only;
输出结果:
2013-03-24
2013-03-23
2013-03-22
2013-03-21
2013-03-20
2013-03-19
2013-03-18
你可以看情况, 自己再做一下排序。
CURRENT_DATE - (DAYOFWEEK(CURRENT_DATE) - 2 + (ROW_NUMBER() OVER (ORDER BY 1) ) ) DAY AS result
FROM
SYSIBM.SYSCOLUMNS
fetch first 7 rows only;
输出结果:
2013-03-24
2013-03-23
2013-03-22
2013-03-21
2013-03-20
2013-03-19
2013-03-18
你可以看情况, 自己再做一下排序。
追问
稍作修改可以查出你所说的结果
只不过你这方法是查询出上周之前的所有日期,然后取前7条,这样的话怎么排序呢
还请指教!
追答
唉, 本来我想偷懒的......
看来还是要自己写啊 ...
SELECT
CURRENT_DATE -
(DAYOFWEEK(CURRENT_DATE) - 1) DAY
- 7 DAY
+ (ROW_NUMBER() OVER (ORDER BY 1) ) DAY AS result
FROM
SYSIBM.SYSCOLUMNS
fetch first 7 rows only;
查询结果:
2013-03-18
2013-03-19
2013-03-20
2013-03-21
2013-03-22
2013-03-23
2013-03-24
注:
DAYOFWEEK 是查询, 日期是当前周的 第几天。 (周日是第一天)
CURRENT_DATE - (DAYOFWEEK(CURRENT_DATE) - 1) DAY
是获取本周的第一天 (也就是 星期天 3月24号)
CURRENT_DATE -
(DAYOFWEEK(CURRENT_DATE) - 1) DAY
- 7 DAY
是 获取上周的第一天 (也就是 上周的 星期天 3月17号)
CURRENT_DATE -
(DAYOFWEEK(CURRENT_DATE) - 1) DAY
- 7 DAY
+ (ROW_NUMBER() OVER (ORDER BY 1) ) DAY
是 从上周星期天 开始 , 每行数据 + 1天。
也就是从 3月18号是第1行, 3月19号是第2行
fetch first 7 rows only;
是只检索 7行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询