【问题标题】:Getting todays date on WHERE clause在 WHERE 子句中获取今天的日期
【发布时间】:2019-05-14 02:14:12
【问题描述】:

我正在尝试创建每天发送的警报。条件是显示所有未完成的退货单。 我希望它今天晚些时候发送,然后以防明天那些数据上的项目仍未完成,然后它会再次发送。

是否需要查询该条件?比方说

SELECT SalesOrderNo, SalesOrderDetailID, CustomerNo, ItemNo, DueDate
  , Completed, Qty, UDCode, CustomerPO 
FROM dbo._EventAlertReturns
WHERE GETDATE() is today?

最好的方法是什么?

【问题讨论】:

  • 执行者“所有退货单未完成”与今天的日期有什么关系?我猜只是一个完整的标志。因此,对于您的要求,您不需要使用getdate()
  • 我不确定我是否理解您将日期值与什么进行比较。通常,您要检查记录集(表、临时表等)上的日期,但这里似乎并非如此。有DateCompleted 字段吗?
  • SELECT SalesOrderNo, SalesOrderDetailID, CustomerNo, ItemNo, DueDate , Completed, Qty, UDCode, CustomerPO FROM dbo._EventAlertReturns alias where alias.DueDate > CURRENT_TIMESTAMP ?你的问题有点难以理解,仅供参考。
  • getdate() 是一个返回当前日期的函数,因此询问getdate() = today(伪代码)是否总是会评估为真。您是否要检查给定的 column 等于当前日期的位置?

标签: sql-server


【解决方案1】:

目前,您的查询本身就足够了,您不需要 WHERE 子句 - 但您无法仅使用 SELECT 语句来设置自动化流程。

正如 Jon Vote 所说,要执行此类操作,您需要 SQL Server Scheduled Job。使用调度代理,您可以创建一个计划包以在晚上执行,该包通过电子邮件向您发送查询结果。

如需更多粒度,您可以查看SQL Server Data Tools,以便更轻松地为您的自动化包创建任务和设置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    • 2014-09-13
    • 2015-02-07
    相关资源
    最近更新 更多