我正在尝试从Teradata中的字段中提取日期和时间。
有问题的字段是:
VwNIMEventFct.EVENT_GMT_TIMESTAMP
以下是数据的样子:
01/02/2012 12:18:59.306000
我只喜欢日期和时间。
我尝试过使用EXTRACT(Date
,EXTRACT(DAY_HOUR
和其他几项但没有成功。
DATE_FORMAT()
似乎没有用,因为我在Teradata上。
如何从VwNIMEventFct.EVENT_GMT_TIMESTAMP
选择日期和时间?
答案 0 :(得分:4)
如果EVENT_GMT_TIMESTAMP的数据类型是TIMESTAMP,那么它就是简单的标准SQL:
CAST(EVENT_GMT_TIMESTAMP AS DATE)
CAST(EVENT_GMT_TIMESTAMP AS TIME)
如果是CHAR,您还需要应用FORMAT:
CAST(CAST(EVENT_GMT_TIMESTAMP AS TIMESTAMP FORMAT 'dd/mm/yyyyBhh:mi:SS.s(6)') AS DATE)
CAST(CAST(EVENT_GMT_TIMESTAMP AS TIMESTAMP FORMAT 'dd/mm/yyyyBhh:mi:SS.s(6)') AS TIME)
修改强>
只需更改显示格式,您需要将FORMAT和CAST添加到字符串中:
CAST(CAST(EVENT_GMT_TIMESTAMP AS FORMAT 'YYYYMMDDHHMI') AS CHAR(12))
or
CAST(CAST(EVENT_GMT_TIMESTAMP AS FORMAT 'YYYYMMDDHHMISS') AS CHAR(14))
如果你不关心显示,只想截断秒:
EVENT_GMT_TIMESTAMP - (EXTRACT(SECOND FROM EVENT_GMT_TIMESTAMP) * INTERVAL '1.000000' SECOND)
使用时间戳有点棘手: - )
答案 1 :(得分:0)
我知道这是一个古老的话题,但是我也为此感到困惑。试试:
CAST(EVENT_GMT_TIMESTAMP AS TIMESTAMP(0))
结果将是
01/02/2012 12:18:59
数据类型仍将是时间戳记,但是它将是日期和时间,没有微秒(看起来像Microsoft SQL中的日期时间对象)。