SQL日期检查在设定的天数内

时间:2013-02-05 17:44:53

标签: sql oracle

我试图找出有多少客户在2004年5月20日14天之前或之后查看了一处房产。根本不确定如何解决这个问题。

我假设我需要将它分组并使用一个?

编辑:我现在正在使用oracle

select count(*)
from VIEWING
WHERE CLAUSE?

2 个答案:

答案 0 :(得分:2)

对于具有该特定日期的一次性查询,

select count(*) clients
from yourtable
where yourdatefield >= {d'2004-05-06'}
and yourdatefield < {d'2004-06-08'}

您可能需要咨询日历以查看这些日期是否正确。

答案 1 :(得分:1)

编辑#1,因为您使用的是Oracle,您可以使用:

select count(*) TotalClients
from yourtable
where dt >= (to_date('2004-05-20', 'yyyy-mm-dd') - INTERVAL '14' DAY)
  and dt <= (to_date('2004-05-20', 'yyyy-mm-dd') + INTERVAL '14' DAY)

请参阅SQL Fiddle with Demo

基于您以前的一些问题,您使用的是MySQL。

<击>

如果您使用的是MySQL,则可以使用DATE_ADD()函数获取日期范围,然后使用count(*)返回这些日期的所有记录:

select count(*) TotalClients
from yourtable
where dt >= date_add(str_to_date('2004-05-20', '%Y-%m-%d'), INTERVAL -14 day)
  and dt <= date_add(str_to_date('2004-05-20', '%Y-%m-%d'), INTERVAL 14 day)

<击>