提取日期和时间 - (Teradata)

时间:2014-05-06 23:11:58

标签: sql datetime teradata

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

有问题的字段是:

VwNIMEventFct.EVENT_GMT_TIMESTAMP

以下是数据的样子:

01/02/2012 12:18:59.306000

我只喜欢日期和时间。

我尝试过使用EXTRACT(DateEXTRACT(DAY_HOUR和其他几项但没有成功。

DATE_FORMAT()似乎没有用,因为我在Teradata上。

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

2 个答案:

答案 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中的日期时间对象)。