1

我需要将我的时间戳转换为以下格式YYYY-MM-DDTHH24:MI:SS.0。请注意中间的“T”。例如 2014-09-04T13:05:10.0。

我尝试了以下方法:

select to_char(timestamp,'YYYY-MM-DDTHH24:MI:SS.0') from table;

但是,RedShift 将“TH”解释为序数后缀 ( http://docs.aws.amazon.com/redshift/latest/dg/r_Numeric_formating.html )。因此,我得到的结果类似于 2014-03-23RDH24:26:36.0。

因此,我在“T”之后添加了一个空格并尝试将空格修剪掉。

select trim(' ' FROM to_char(timestamp,'YYYY-MM-DDT HH24:MI:SS.0')) from table;

然而,修剪实际上并没有消除空间。我的结果就像 2014-03-23T 07:26:36.0。

我也尝试使用反斜杠进行转义,但这也不起作用。

如何在没有空格的情况下实现所需的格式?

4

2 回答 2

3
upper(to_char(GetDate(),'YYYY-MM-DDtHH24:MI:SS.0'))

也可以。

于 2015-02-23T01:34:34.603 回答
1

这最终起作用了

select concat(to_char(timestamp,'YYYY-MM-DDT'), to_char(timestamp,'HH24:MI:SS.0')) from table;
于 2014-09-04T21:51:17.467 回答