1

我试图找出在 2004 年 5 月 20 日之前或之后的 14 天内有多少客户查看了房产。完全不知道该怎么做。

我假设我需要对它进行分组并使用拥有?

编辑:我现在正在使用 oracle

select count(*)
from VIEWING
WHERE CLAUSE?
4

2 回答 2

2

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

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

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

于 2013-02-05T17:49:28.600 回答
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

根据您之前的一些问题,您使用的是 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)

于 2013-02-05T17:52:43.483 回答