如何解决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())
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。