提取日期和时间- (Teradata)



我正在尝试从Teradata的字段中提取日期和时间。

问题字段是:

VwNIMEventFct.EVENT_GMT_TIMESTAMP

数据如下:

01/02/2012 12:18:59.306000

我只需要日期和时间。

我试过使用EXTRACT(Date, EXTRACT(DAY_HOUR和其他一些没有成功。

DATE_FORMAT()似乎不工作,因为我在Teradata。

如何从VwNIMEventFct.EVENT_GMT_TIMESTAMP中选择日期和时间?

如果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)

使用时间戳有点棘手:-)

我知道这是一个古老的话题,但我也曾为此挣扎过。试一试:

CAST(EVENT_GMT_TIMESTAMP AS TIMESTAMP(0))

结果将是

01/02/2012 12:18:59

数据类型仍然是时间戳,但它将只是日期和时间,没有微秒(看起来就像Microsoft SQL中的datetime对象)。

相关内容

  • 没有找到相关文章

最新更新