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

问题描述

| 我是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\";
表中日期的示例是2011/6/9下午12:08:01 任何建议都会有所帮助。 谢谢     

解决方法

        
WHERE  DATEDIFF(day,People.lastmodified,GETDATE()) <= 7
    ,        使用日期的技巧是先使用DATEADD和其他所需内容(即创建一个范围)
declare @start datetime = ...,@end datetime = ...
然后在该范围内搜索;我通常会在开头加上结尾,因为这允许在“第10至12之间有一个简单的数据”
where row.lastmodified >= @start
and   row.lastmodified < @end
除非值是整个单位(天等),否则确定范围很关键-否则平等将无法很好地发挥作用。并且简单的> =和<使用允许有效使用索引等。     ,        如果这是您要查找的范围,例如从一周前开始到一周前结束的所有更改,则BETWEEN可以使此操作非常容易。
WHERE People.lastmodified BETWEEN DATEADD(week,-1,getdate()) AND DATEADD(week,-2,getdate())
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...