2

我有原始文本列,其值如“2012-07-26T10:33:34”和“2012-07-26T10:56:16”。在使用 Joda-Time 的 Java 中,我可以通过调用轻松地将其转换为日期/日期

new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").

在 Postgres 中,我如何忽略中间的这个“T”字符?

我试过'YYYY-MM-DD\THH:mm:ss'但得到错误

> 错误:找不到从未知到文本的转换函数

4

1 回答 1

1

如果我没记错的话,ANSI ANSI 时间戳文字中允许使用 T,因此以下内容应该有效。

select timestamp '2012-07-26T10:33:34';

你说你有一个文本列,所以你可能需要这样的东西:

create table foo (ts text);
insert into foo values ('2012-07-26T10:33:34')
select cast(ts as timestamp)
from foo;

这也有效:

select to_timestamp(ts, 'yyyy-mm-dd hh24:mi:ss')
from foo;

SQLFiddle 示例:http ://sqlfiddle.com/#!12/0b369/1

于 2013-01-09T18:47:00.240 回答