我有一个C#程序将作为Windows计划任务运行。该程序将加载,运行SQL查询,通过电子邮件发送存储在数据集中的结果,然后关闭。除了使用Yesterdays日期之外,我拥有一切。如何将昨天的日期分配给参数C#
这里是我当前的查询:
SELECT Store_Id, Paid_Out_Amount, Paid_Out_Comment, Paid_Out_Datetime, Update_UserName, Till_Number, @startdate AS Start, @enddate AS Today
FROM Paid_Out_Tb
WHERE (Store_Id = 1929) AND (Paid_Out_Datetime BETWEEN @startdate AND @enddate)
很显然,我需要在查询的时间分配@startdate和@EndDate。因为我需要12AM到1159PM这是开始和结束的原因。举个例子。如果我想今天运行程序,它会搜索昨天(23日),所以@startdate将被分配7/22/12 00:00:00和@ enddate将被分配7/22/12 23:59:59 .. 。
在查询而不是程序中做它更合理吗?如果是这样,我将如何更改查询?
不要之间使用的。请阅读http://sqlblog.com/blogs/aaron_bertrand/archive/2011/10/19/what-do-between-and-the-devil-have-in-common.aspx和http://sqlblog.com/。 blog/aaron_bertrand/archive/2009/10/16/bad-habits-to-kick-mishandling-date-range-queries.aspx – 2012-07-23 17:15:08