【问题标题】:invalid parameter 1 specified for datadiff为 datadiff 指定的参数 1 无效
【发布时间】:2016-08-30 06:28:41
【问题描述】:

我想每天在数据库中自动更新有关持续时间的字段。公式是(截止日期 - 现在日期)。我想使用 sql server 代理。但是当我测试作业时它失败了。

USE FacilityMonitoring
GO

UPDATE [dbo].[klaim]
   SET selisihint = DATEDIFF ("dd", GETDATE(), durasi_end)
GO

在 SQL Server 代理中查询:

错误:

【问题讨论】:

    标签: sql sql-server ssms datediff sql-agent-job


    【解决方案1】:

    datediff() 的第一个参数是日期部分。虽然它不是一个字符串,所以用dd 替换"dd" 应该可以完成这项工作:

    USE FacilityMonitoring
    GO
    
    UPDATE [dbo].[klaim]
       SET selisihint = DATEDIFF (dd, GETDATE(), durasi_end)
    GO
    

    【讨论】:

    • 嗨。非常感谢。有用。这是因为参数字符串。 @kamil-g
    • 对于处于类似位置的其他任何人,当我从 Access DB 迁移到 MS SQL Server 时,这为我解决了这个问题,其中字符串语法“dd”在 Access 中工作。
    【解决方案2】:

    您的引号是多余的(阅读:错误)。删除它们,你应该没问题:

    UPDATE [dbo].[klaim]
       SET selisihint = DATEDIFF (dd, GETDATE(), durasi_end)
    

    【讨论】:

      【解决方案3】:

      使用数据库名称

      UPDATE [schema_name].[Table_name]
         SET column_name= DATEDIFF (dd, GETDATE(), durasi_end)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-03-03
        • 1970-01-01
        • 2014-07-09
        • 1970-01-01
        • 2020-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多