我一直在尝试在 SELECT 参数中设置 - 切片开始时间以收集最近更改的记录:
WHERE pv.CreatedAt >= \'{0:yyyyMMdd-HH}\'', Time.AddHours(SliceStart, 0))"
我得到错误:
数据库操作失败。来自数据库执行的错误消息: ErrorCode=FailedDbOperation,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=A 数据库操作失败,出现以下错误:"转换失败" 从字符转换日期和/或时间时 string.',Source=,''Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=A 数据库操作失败,出现以下错误:"转换失败" 从字符转换日期和/或时间时 string.',Source=Microsoft.DataTransfer.ClientLibrary,''Type=System.Data.SqlClient.SqlException,Message=Conversion 从字符转换日期和/或时间时失败 string.,Source=.Net SqlClient Data Provider,SqlErrorNumber=241,'.
我看到您正在使用Time.AddHours()函数,但将0作为参数传递,该参数将为SliceStart值添加零小时。如果您不打算增加切片开始时间,请尝试以下操作:
"sqlReaderQuery": "$$Text.Format('select ...其中光伏。CreatedAt>= \'{0:yyyy-MM-dd}\', SliceStart)"
干杯Luis
除了@Luis回答的内容。
您必须确保源日期格式必须与传递的日期格式匹配。
例如:- 如果源是 Oracle 则按如下方式编写查询:-
WHERE TO_DATE(pv.CreatedAt,'YYYY-MM-DD') >= \'{0:yyyy-MM-dd}\'',SliceStart))"