RedShift to_char 格式没有给出想要的结果

Posted

技术标签:

【中文标题】RedShift to_char 格式没有给出想要的结果【英文标题】:RedShift to_char format not giving desired results 【发布时间】:2014-09-04 19:48:12 【问题描述】:

我需要将我的时间戳转换为以下格式 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。

我也尝试过使用反斜杠进行转义,但这也没有用。

如何实现不带空格的所需格式?

【问题讨论】:

【参考方案1】:
upper(to_char(GetDate(),'YYYY-MM-DDtHH24:MI:SS.0'))

也可以。

【讨论】:

【参考方案2】:

这最终奏效了

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

【讨论】:

以上是关于RedShift to_char 格式没有给出想要的结果的主要内容,如果未能解决你的问题,请参考以下文章