我有几个日期时间字段,我需要时间为24小时格式。
间隔开始时间 2016-01-04 03.30
我需要它作为
间隔开始时间 2016-01-04 15.30
我在SSIS的Derived Column中开发了这段代码。但我不认为这是正确的:
(DATEPART("Hh",[Interval Start Time]) == 01 ? "13" :
(DATEPART("Hh",[Interval Start Time]) == 02 ? "14" :
(DATEPART("Hh",[Interval Start Time]) == 03 ? "15" :
(DATEPART("Hh",[Interval Start Time]) == 04 ? "16" :
(DATEPART("Hh",[Interval Start Time]) == 05 ? "17" :
"")))))
我将不胜感激。
答案 0 :(得分:0)
只需使用CONVERT
:
SELECT CONVERT(char(16), [Interval Start Time], 120)
如果您想让时间分隔一个点(.
)而不是冒号(:
),您可以添加REPLACE
:
SELECT REPLACE(CONVERT(char(16), [Interval Start Time], 120), ':', '.')
答案 1 :(得分:0)
您似乎只需要为每个日期时间添加12小时,例如
DATEADD(HOUR, 12, [Interval Start Time])
或者,要复制问题中的逻辑,您可以有条件地应用添加:
CASE WHEN DATEPART(HOUR, [Interval Start Time]) <= 5 THEN [Interval Start Time] ELSE DATEADD(HOUR, 12, [Interval Start Time]) END
答案 2 :(得分:0)
如果您尝试将日期时间转换为24小时格式,则可以尝试以下查询。
select CONVERT(VARCHAR(24),getdate(),121);
Or
select CONVERT(datetime,getdate(),121);
OUTPUT : 2016-07-28 20:14:10.937
答案 3 :(得分:0)
试试这个:
(DT_WSTR,4)YEAR([Interval Start Time])+"-"+
RIGHT("0" + (DT_WSTR,2) MONTH([Interval Start Time]),2)+ "-"+
RIGHT( "0" + (DT_WSTR,2) DAY([Interval Start Time]),2) +" "+
(datepart("hour",[Interval Start Time]) == 1 ? "13" :
datepart("hour",[Interval Start Time]) == 2 ? "14" :
datepart("hour",[Interval Start Time]) == 3 ? "15" :
datepart("hour",[Interval Start Time]) == 4 ? "16" :
datepart("hour",[Interval Start Time]) == 5 ? "17" : "" )
+"."+RIGHT( "0" + (DT_WSTR,2) datepart("mi",[Interval Start Time]),2)
认为您正在寻找SSIS任务的表达式&#39; Derived Column&#39;并假设“间隔开始时间”&#39;是日期时间。 我希望这有帮助。