我需要将时间戳转换为以下格式 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。
我也尝试使用反斜杠进行转义,但这也无效。
如何在没有空格的情况下实现所需的格式?
答案 0 :(得分:3)
upper(to_char(GetDate(),'YYYY-MM-DDtHH24:MI:SS.0'))
也有效。
答案 1 :(得分:1)
最终工作
select concat(to_char(timestamp,'YYYY-MM-DDT'), to_char(timestamp,'HH24:MI:SS.0')) from table;