【问题标题】:Convert string type date field (dd/mm/yy hh mm ss ) to string YYYYMMDD in SSIS在SSIS中将字符串类型日期字段(dd/mm/yy hh mm ss)转换为字符串YYYYMMDD
【发布时间】:2021-02-12 05:43:28
【问题描述】:

我的提要列的示例值,

27/04/2015 00:00:01

2015 年 2 月 2 日上午 12:00:01

16/03/2016 00:00:01

到目前为止,我已经尝试过派生列表达式,

REPLACE((DT_WSTR,10)(DT_DBDATE)MyField,"-","") 

2020 年 2 月 10 日凌晨 12:00:00 开始播放

至 2020-02-10

但我正在寻找 2020-10-02

这有点奇怪

这是我所期望的

【问题讨论】:

  • 用您正在使用的数据库标记您的问题。
  • 来源是什么?源中的数据类型是什么?你为什么要转换成字符串?日期应存储为日期,而不是字符串。
  • 存储为日期,然后只在表现层转换。

标签: sql-server date ssis data-conversion


【解决方案1】:

假设您使用的是 SQL Server,我认为这可以满足您的需求:

select convert(date, left(feed, 10), 103)

【讨论】:

  • @Gordan Linoff,谢谢。我正在使用 SSIS 打包的派生列 - 表达式
【解决方案2】:

在加载之前你可以Set DateFormat DMY

示例

Set DateFormat DMY

Declare @YourTable table (SomeCol datetime)
Insert Into @YourTable values
('27/04/2015 00:00:01')
,('2/2/2015 12:00:01 AM')
,('16/03/2016 00:00:01')

Select * From @YourTable

结果

SomeCol
2015-04-27 00:00:01.000
2015-02-02 00:00:01.000
2016-03-16 00:00:01.000

【讨论】:

    猜你喜欢
    • 2020-05-10
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    • 2016-11-30
    • 2016-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多