2012-03-18 141 views
-1

我有一个以文本形式导入的列。我该如何从postgres中的文本中随时间改变数据类型?在postgres中将文本更改为时间

请帮忙。

+0

你想要的数据类型'时间'或你真的想要[''timestamp'](http:// www。 postgresql.org/docs/current/interactive/datatype-datetime.html)? – 2012-03-18 20:56:40

+0

我想要时间,但我不能添加时间列 – madi 2012-03-19 04:46:35

回答

1

基本上是我做的是这样的:

的时间总是在任何数据库的问题,从文本转换到年月日时。我做了以下,因为我无法找到一个直接的解决方案

  1. 我创造了时间类型的新列“visit_time”并复制所有在文本列到新列

  2. 的时间代码如下:

     
        ALTER TABLE "ae" ADD COLUMN visit_time time;
    UPDATE "ae" SET visit_time = to_timestamp(visit_time2,'HH24:MI:SS');;

2

谷歌的Postgres字符串时间戳表明to_timestamp

+0

我ahve试过,但它不起作用 – madi 2012-03-19 04:48:41

+1

“它不工作”是没用的。发布SQL请求和实际的错误消息。 – bortzmeyer 2012-12-11 21:32:25

1
alter table <table> 
alter <columnname> type time 
using <columnname>::time; 

如果n值直接转换..你也可以写一个函数来处理这个...

alter table <table> 
alter <columnname> type time 
using fn_someconversionfunction(<columnname>);