XML 中的日期时间字段在通过 SSIS 存储在数据库中时由于某种原因添加了一个小时
Datetime field in XML gets an hour added for some reason when storing in database via SSIS
我有一个 XML 正在拉入,它有日期时间字段:
<startTime>2015-11-01T00:00:00-05:00</startTime>
<endTime>2015-12-01T00:00:00-05:00</endTime>
XSD的相关部分如下:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.foo.com/bar" xmlns:xs="http://www.w3.org/2001/XMLSchema">
....
<xs:element minOccurs="0" name="startTime" type="xs:dateTime" />
<xs:element minOccurs="0" name="endTime" type="xs:dateTime" />
当我使用 SSIS 处理文件时,我使用 XML 源组件从文件中获取数据并将其加载到 table.
出于某种奇怪的原因,当加载到 table 完成时(这仅在我使用 2015-11-01 作为开始日期时发生),startDate 字段会额外增加一个小时它。在table中出现如下:
2015-11-01 01:00:00.000
这只会在使用 2015 年 11 月 1 日作为开始日期时发生,我假设这是因为 DST 更改是在 11 月 1 日,将时间调回(我在东部时区)但如果有的话,它应该有在 2:00am 影响了事情,减去一小时,而不是增加。
如果能帮助我找出发生这种情况的原因,我将不胜感激。谢谢!
所以,事实证明根本没有问题 - 我觉得自己很愚蠢!
我在加拿大东部时区,遵守夏令时。在夏季,时钟向前移动一小时,偏移量变为 GMT-04:00。在冬季,时钟向后调整一个小时,偏移量变为 GMT-05:00。
传入的文件将开始时间和结束时间指定为:
<startTime>2015-11-01T00:00:00-05:00</startTime>
<endTime>2015-12-01T00:00:00-05:00</endTime>
然而,DST 直到 11 月 1 日才结束 2:00am。因此 startTime 的偏移实际上应该是:
2015-11-01T00:00:00-04:00
在午夜,startTime 仍然遵循夏季时间表,以节省时间(因此偏移 -4:00)。 endTime 在时间更改之后,因此偏移量被正确指定为 -05:00。
我有一个 XML 正在拉入,它有日期时间字段:
<startTime>2015-11-01T00:00:00-05:00</startTime>
<endTime>2015-12-01T00:00:00-05:00</endTime>
XSD的相关部分如下:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.foo.com/bar" xmlns:xs="http://www.w3.org/2001/XMLSchema">
....
<xs:element minOccurs="0" name="startTime" type="xs:dateTime" />
<xs:element minOccurs="0" name="endTime" type="xs:dateTime" />
当我使用 SSIS 处理文件时,我使用 XML 源组件从文件中获取数据并将其加载到 table.
出于某种奇怪的原因,当加载到 table 完成时(这仅在我使用 2015-11-01 作为开始日期时发生),startDate 字段会额外增加一个小时它。在table中出现如下:
2015-11-01 01:00:00.000
这只会在使用 2015 年 11 月 1 日作为开始日期时发生,我假设这是因为 DST 更改是在 11 月 1 日,将时间调回(我在东部时区)但如果有的话,它应该有在 2:00am 影响了事情,减去一小时,而不是增加。
如果能帮助我找出发生这种情况的原因,我将不胜感激。谢谢!
所以,事实证明根本没有问题 - 我觉得自己很愚蠢!
我在加拿大东部时区,遵守夏令时。在夏季,时钟向前移动一小时,偏移量变为 GMT-04:00。在冬季,时钟向后调整一个小时,偏移量变为 GMT-05:00。
传入的文件将开始时间和结束时间指定为:
<startTime>2015-11-01T00:00:00-05:00</startTime>
<endTime>2015-12-01T00:00:00-05:00</endTime>
然而,DST 直到 11 月 1 日才结束 2:00am。因此 startTime 的偏移实际上应该是:
2015-11-01T00:00:00-04:00
在午夜,startTime 仍然遵循夏季时间表,以节省时间(因此偏移 -4:00)。 endTime 在时间更改之后,因此偏移量被正确指定为 -05:00。