【问题标题】:to convert datetime into date string from 2019-05-02 12:00:00 to 2019-05-02从 2019-05-02 12:00:00 到 2019-05-02 将日期时间转换为日期字符串
【发布时间】:2019-09-27 17:55:54
【问题描述】:

我正在尝试在 sql 转换中的包内运行查询。尝试将日期时间转换为字符串,其中我的值为 2019-05-02 12:00:00 AM 到 2019-05-02

*
FROM <MyTable>  where datekey ='" + (DT_STR,20,1252)(@[User::NextStartTime]) + "'

我试过了,但它的输出为 datekey = '12:00:00 AM' 但我正在寻找 '2019-05-02'

【问题讨论】:

  • 想通了。这是解决方案。其中 datekey ='" + (DT_WSTR,30)year(@[User::NextStartTime]) + "-" + Right ("0"+(DT_WSTR,30)month(@[User::NextStartTime]),2) + "-" + Right("0"+(DT_WSTR,30)day(@[User::NextStartTime]),2) + "'
  • 为什么不直接使用LEFT((DT_WSTR,30)@[User::NextStartTime],10)

标签: sql sql-server datetime ssis etl


【解决方案1】:

您可以简单地使用以下表达式:

LEFT((DT_WSTR,50)@[User::NextStartTime],10)

输出:

2019-05-10

基于Cast (SSIS Expression) official documentation

当字符串转换为 DT_DATE 时,或反之亦然,将使用转换的语言环境。但是,无论区域设置首选项是否使用 ISO 格式,日期都是 YYYY-MM-DD 的 ISO 格式。

【讨论】: