【问题标题】:What format is this date and how can I convert it to a regular datetime?该日期是什么格式,如何将其转换为常规日期时间?
【发布时间】:2014-10-14 04:05:24
【问题描述】:

亚马逊为卖家提供订单报告。我正在尝试将这些订单报告之一导入 Sql Server 数据库:

他们的日期字段如下所示:

2014-04-30T12:17:28-07:00
2014-04-30T12:24:43-07:00
2014-04-30T12:25:34-07:00
2014-04-30T12:46:02-07:00
2014-07-27T13:10:02-07:00
2014-07-27T13:12:09-07:00
2014-07-27T13:20:42-07:00
2014-07-27T13:23:25-07:00
2014-07-27T13:29:10-07:00
2014-07-27T13:36:16-07:00
2014-07-27T13:51:41-07:00

我无法确定分配此日期的数据类型。

如何将此字段转换为常规日期时间?解决方案可以是 SQL 或 SSIS 或组合。

【问题讨论】:

  • 对我来说这看起来像是一个日期时间偏移量。您可以像这样将其转换为 t-sql。选择 CAST('2014-04-30T12:17:28-07:00' as datetimeoffset)
  • @SeanLange 非常感谢。什么是 datetimeoffset 以及它如何转换为 datetime?
  • 知道了!@ 非常感谢。请给出答案
  • 你关心根据偏移量调整时间吗?偏移量考虑了与 GMT 相关的时区。如果要调整以使时间与服务器时间一致,则需要使用 DATEADD 适当地调整日期。

标签: sql sql-server sql-server-2008 tsql ssis


【解决方案1】:

试试这个.....

SQL 服务器

SELECT  CONVERT(DATETIME,
                  CONVERT(DATETIME2, '2014-04-30T12:17:28-07:00')
                  )

RESULT: 2014-04-30 12:17:28.000   --<-- SQL SERVER DATETIME 

SSIS

  1. 将输入列转换为 SSIS 数据类型DT_DBTIMESTAMP2
  2. 添加derived column task 并使用以下表达式

    (DT_DBTIMESTAMP)Input_Column_Name
    

基本上你在做同样的事情,但结果是一样的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-04
    • 2019-09-03
    • 2018-01-05
    • 2021-11-30
    • 2020-04-02
    • 2015-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多