Need to simplify [duplicate]

*爱你&永不变心* 提交于 2019-12-14 03:28:45

问题


 WHERE (((tblNewCaseLog.CasePersonAddress) Like "*" & GetCriteria() & "*") AND ((DatePart("yyyy",    
  [DateLog])) Between DatePart("yyyy",Now())-1 And DatePart("yyyy",Now())))
  ORDER BY tblNewCaseLog.DateLog DESC;

--Really need to improve old Access syntax to SQL 2008 for migration. Gracias!


回答1:


WHERE tblNewCaseLog.CasePersonAddress Like '%' + @GetCriteria + '%' 
     AND 
     YEAR([DateLog]) Between YEAR(GETDATE())-1 And YEAR(GETDATE())
ORDER BY tblNewCaseLog.DateLog DESC;

A better performance efficient solution would be

WHERE tblNewCaseLog.CasePersonAddress Like '%' + @GetCriteria + '%' 
     AND 
     [DateLog] >= DATEADD(YEAR, DATEDIFF(YEAR,0,GETDATE()) -1, 0) 
     AND 
     [DateLog] <= DATEADD(YEAR, DATEDIFF(YEAR,0,GETDATE()) + 1, -1)
ORDER BY tblNewCaseLog.DateLog DESC;


来源:https://stackoverflow.com/questions/26149073/need-to-simplify

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!