带有时区偏移量的 SSIS SQL 命令日期时间参数
我正在设计一个 SSIS 包来将数据从 SQL DB 转换到另一个 SQL DB。我正在使用 OLE DB 源并将查询编写为 SQL 命令。我正在传递一个日期时间参数,该参数将通过 SSIS 变量从 XML 配置文件中读取。在配置文件中,我将日期设置为“2/16/2011 2:00:00 AM”。 SQL 命令的查询中使用此参数来获取给定日期之后插入/更新的数据。当我运行 SSIS 包时,我没有获得正确的数据。为了进一步挖掘这一点,我运行了 SQL Profiler 来检查发送的参数的值,并注意到每当调用 SQL 命令查询时,它都会在参数后添加偏移量 (-08:00)。有没有办法在SSIS运行时不设置偏移量?
I am designing a SSIS package to transform data from SQL DB to another SQL DB. I'm using OLE DB source and have Query written as SQL Command. I'm passing a datetime parameter which will be read via SSIS variable from XML configuration file. In Config file I'm setting date as '2/16/2011 2:00:00 AM'. This parameter is being used in the query from SQL Command to get the data inserted/updated after given date. When I run the SSIS package I'm not getting correct data. To dig this further, I had run SQL Profiler to check the value of the parameter being sent and noticed that whenever the SQL Command query is being called, it is suffixing offset (-08:00) to the parameter. Is there any way to not to set the offset when SSIS runs?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当我设置 OLEDB 源并使用它来查询表中的日期时间字段时,它会返回正确的值。
例如: select FULLDATETIME from where FULLDATETIME = '12/5/2010 02:00:00 AM'
我得到以下结果:
2010-12-05 02:00:00
听起来您可能正在查询 datetimeoffset 字段。您需要使用 dateadd() 调整您的文字值,例如 select dateadd(mi, datediff(MI, getutcdate(),GETDATE()), '2/16/2011 2:00:00 AM')
When I set up an OLEDB source and use it to query a datetime field in a table, it returns the correct values.
eg: select FULLDATETIME from where FULLDATETIME = '12/5/2010 02:00:00 AM'
I get the following result:
2010-12-05 02:00:00
Sounds like you could be querying a datetimeoffset field. You'll need to adjust your literal value with dateadd(), eg select dateadd(mi, datediff(MI, getutcdate(),GETDATE()), '2/16/2011 2:00:00 AM')