【问题标题】:Syntax error When convert from MySQL to T-SQL从 MySQL 转换为 T-SQL 时出现语法错误
【发布时间】:2017-11-16 05:12:54
【问题描述】:

我是 SQL 新手。 我正在将 mysql 转换为 SQL。

我在使用 DateAdd 函数时发现了一个错误。

这里是查询:

SELECT
      [id],
      [test_code],
      [test_name],
      [test_price],
      [discount],
      DATEADD(CURRENT_TIMESTAMP, INTERVAL [test_duration] HOUR) as delivery_date,       
      [is_active]
    FROM [icddrb_tblab].[dbo].[tb_test]
    WHERE [icddrb_tblab].[dbo].[tb_test].[id] =0

它给出了错误: 消息 102,级别 15,状态 1,第 7 行

“test_duration”附近的语法不正确。

谁能给我建议,问题出在哪里。

【问题讨论】:

  • 如果你使用SQLServer你可以试试DATEADD(HOUR,[test_duration],GETDATE()) as delivery_date
  • “Microsoft SQL Server”有时(令人沮丧地)仅称为“SQL”,但 MS 不生产称为“SQL”的产品。请始终通过标签中的“sql-server”引用 MS 生成的数据库。 SQL 是一种语言。

标签: sql sql-server tsql sql-convert


【解决方案1】:

DATEADD 函数接受这样的参数DATEADD (datepart , number , date )

你可以使用它。

SELECT
      [id],
      [test_code],
      [test_name],
      [test_price],
      [discount],
      DATEADD(HOUR, [test_duration], CURRENT_TIMESTAMP ) as delivery_date,       
      [is_active]
    FROM [icddrb_tblab].[dbo].[tb_test]
    WHERE [icddrb_tblab].[dbo].[tb_test].[id] =0

【讨论】:

    【解决方案2】:

    已解决:

    DATEADD(HOUR,[test_duration], CURRENT_TIMESTAMP) as delivery_date,
    

    它的实际格式。

    【讨论】:

    • 嘿,为什么你发布已经在这里的答案,而不是接受现有的答案?
    猜你喜欢
    • 2018-07-17
    • 1970-01-01
    • 2016-10-30
    • 2014-07-29
    • 1970-01-01
    • 1970-01-01
    • 2019-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多