我需要根据日期数据类型字段从oracle表中选择当前日历周的recods。目前我这样做:
select * from my_table where enter_date > sysdate -7
如果今天是星期四,此查询将从今天起七天选择记录,这些记录将在周四渗透到上周。有没有办法动态选择当前日历周的记录?
答案 0 :(得分:2)
如果您的一周从星期一开始,那么:
select ...
from ...
where dates >= trunc(sysdate,'IW')
对于一周中第一天的替代定义,trunc(sysdate,'W')截断到当前月份开始的星期几,trunc(sysdate,'WW')截断到当天本年开始的那一周。
请在此处查看其他可用截断:http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions255.htm#i1002084
答案 1 :(得分:1)
to_char(sysdate, 'd')
返回[1..7]范围内的星期几;所以尝试使用
select *
from my_table
where enter_date >= trunc(sysdate) - to_char(sysdate, 'd') + 1