SQL语句从一周后获取数据?

时间:2011-06-15 18:12:53

标签: c# sql web-applications

我是SQL语句的新手,我在一周前根据修改日期获取数据时遇到一些麻烦。

   SELECT People.first, People.last, company.companyname, People.lastmodified
   FROM job_prof 
   INNER JOIN People ON job_prof.cid = People.cid 
   INNER JOIN company ON job_prof.Id = company.id
-> WHERE   People.lastmodified = DATE(DATE_ADD(GETDATE(), INTERVAL -7 DAY))
   ORDER BY People.lastmodified DESC";

表格中的日期示例是6/9/2011 12:08:01 PM

任何建议都会有所帮助。

谢谢

3 个答案:

答案 0 :(得分:3)

WHERE  DATEDIFF(day,  People.lastmodified, GETDATE()) <= 7

答案 1 :(得分:2)

日期的诀窍是使用DATEADD创建一个范围 first 以及您需要的任何其他内容,即。

declare @start datetime = ...,
        @end datetime = ...

然后搜索该范围;我通常包括开始和排除结束,因为这允许简单的“第10和第12之间的数据”

where row.lastmodified >= @start
and   row.lastmodified < @end

除非值是整个单位(天等),否则有一个范围是至关重要的 - 否则平等将不会很好。简单的&gt; =和&lt;使用允许有效使用索引等。

答案 2 :(得分:0)

如果它是你正在寻找的范围,例如一周前开始修改并在此前一周结束的任何内容,BETWEEN会让这很容易。

WHERE People.lastmodified BETWEEN DATEADD(week, -1, getdate()) AND DATEADD(week, -2, getdate())