【问题标题】:SSIS Change a date formatSSIS 更改日期格式
【发布时间】:2023-12-04 01:39:01
【问题描述】:

我的日期时间格式显示如下:

'13-10-2016 11:58:00'

我要求它显示为:

'2016-10-13 11:58:00'

如何更改下面的表达式以匹配它?

表达式:

"SELECT _sessions.session_id AS session_id,   _sessions.user_id AS user_id,   _sessions.updated_at FROM public._sessions _sessions" + (@[User::IncrementalOrFullLoad] == "F" ? "" : " WHERE  

当前输出:

SELECT _sessions.session_id AS session_id,   _sessions.user_id AS user_id,   _sessions.updated_at FROM public._sessions _sessions WHERE  
_sessions.updated_at  > '13-10-2016 11:58:00'

【问题讨论】:

  • datetime 没有固有格式,其显示方式取决于您的本地设置。如果要显示某种格式,则必须将其转换为varchar

标签: sql ssis ansi-sql


【解决方案1】:

从日期时间变量生成字符串 YYYY-MM-DD hh:mm:ss 很简单

(DT_STR, 20, 1252)(DT_DBTIMESTAMP)@[User::YourDateTimeVar]  

第一种类型转换为 DBTIMESTAMP 是避免格式歧义所必需的。没有它,SSIS .Net 进程将使用进程或系统区域性将日期时间变量转换为字符串。第一次转换为 DBTIMESTAMP 可以修复文化并产生所需的结果。

【讨论】: