Dou*_*Fir 1 sql datetime teradata
我正在从具有时间戳(6)数据类型的表中进行选择.
我想得到日期和时间,如此:
目前数据如下所示: 03/10/2014 21:54:47.690000
我想选择,以便结果如下所示: 03/10/2014 21:54:47
我试过这个:
SELECT CAST(EVENT_GMT_TIMESTAMP AS DATE) || (EVENT_GMT_TIMESTAMP AS TIME) AS theDate, SUM(VwNIMEventFct.DWELL_MINUTES) AS totalDwellMins
FROM RDMAVWSANDBOX.VwNIMEventFct
WHERE EXTRACT(MONTH FROM EVENT_GMT_TIMESTAMP) = 4
GROUP BY theDate
Run Code Online (Sandbox Code Playgroud)
但收到一条消息"语法错误,期望EVENT_GMT_TIMESTAMP和AS关键字之间的东西"
还试过concat().
有没有更好的方法,而不是连接,选择EVENT_GMT_TIMESTAMP作为日期时间,但到了分钟?
还到了一小时?
必须有一个功能,让你选择这样的输出?
我发现研究网络的东西似乎不适用于Teradata.
我也试过这个:
SELECT CAST(EVENT_GMT_TIMESTAMP AS FORMAT 'YYYYMMDDHHMM')
Run Code Online (Sandbox Code Playgroud)
但输出是这样的:
04/18/2014 12:20:44.384000
Run Code Online (Sandbox Code Playgroud)
我需要它像这样:
04/18/2014 12:20:44
Run Code Online (Sandbox Code Playgroud)
我从来没有能够像我想要的那样使时间戳格式化工作,但这将获得所需的格式:
SELECT current_timestamp(6) AS ts,
( ts (FORMAT 'MM/DD/YYYY') (CHAR(10)))as DT,
cast (ts as time(6)) (char(8)) as tm,
dt ||' ' ||tm as FormattedDate
Run Code Online (Sandbox Code Playgroud)
或者,有新的和改进的版本,dnoeth的赞美:
SELECT current_timestamp(6) AS ts,
ts (FORMAT 'MM/DD/YYYYbhh:mi:ss') (CHAR(19))
Run Code Online (Sandbox Code Playgroud)