【发布时间】:2021-07-22 20:07:20
【问题描述】:
我正在创建从 SQL 数据库到 Azure 数据工厂中存储的管道。
我正在努力确定如何使用以下格式搜索两个日期之间的数据:yyyy-MM-ddTHH:mm:ssZ
我为日期创建了一个变量:date
现在使用以下代码搜索查询:
@concat('SELECT * FROM dbo.Task_History
WHERE history_timestamp BETWEEN ''2015-01-01T01:00:00Z'' AND CONVERT(datetime2, ''' , variables('date') , ''', 127)')
它给出了一个错误说明:
从字符串转换日期和/或时间时转换失败。
下面是搜索目标数据的目标列
【问题讨论】:
-
这里的
variables('date')是什么? -
当您通过字符串连接构造查询时(但请倾向于使用参数来保持数据和代码分离并避免 SQL 注入)并且查询不工作,请打印出 整个最终查询。您要么自己发现问题,要么将其包含在您的问题中。
-
我正在寻找如何编辑。谢谢!
-
无论如何,SQL 数据库中的日期都没有格式。它们是二进制值,就像 int、bigint、bit、decimal 等。像 SSMS 这样的客户端工具使用 ISO861 格式显示它们,因为它是唯一明确的格式,而不是因为日期本身有任何格式
-
@JuanEnriqueBanal 这不是桌子。就是表情。您对 SQL 注入和转换问题持开放态度。不要使用连接。使用文档显示的内容 - 带有强类型参数的字符串插值
标签: sql tsql azure-data-factory