PostgreSQL:用datetime替换字符串

PostgreSQL:用datetime替换字符串,postgresql,timestamp,type-conversion,Postgresql,Timestamp,Type Conversion,我有一个带有时间戳的可变字符字段(datestring),我想将其转换为时间戳类型。我可以成功地创建一个新的时间戳列(见下文),并使用列datestring的格式化版本填充此列,但我不希望创建一个新字段,我只想用其自身的时间戳版本替换datestring字段 所以这很好: ALTER TABLE service_areas ADD COLUMN newdate timestamp update service_areas set newdate = to_timestamp(datestring

我有一个带有时间戳的可变字符字段(datestring),我想将其转换为时间戳类型。我可以成功地创建一个新的时间戳列(见下文),并使用列datestring的格式化版本填充此列,但我不希望创建一个新字段,我只想用其自身的时间戳版本替换datestring字段

所以这很好:

ALTER TABLE service_areas ADD COLUMN newdate timestamp
update service_areas set newdate = to_timestamp(datestring, 'YYYY-MM-DD HH24:MI:SS.MS')
但我想做一些事情,比如:

update service_areas set datestring = to_timestamp(datestring, 'YYYY-MM-DD HH24:MI:SS.MS')
建议

使用USING子句

postgres=# CREATE TABLE foo(a varchar); CREATE TABLE postgres=# INSERT INTO foo VALUES('2013-07-15'); INSERT 0 1 postgres=# ALTER TABLE foo ALTER COLUMN a TYPE date USING to_date(a,'YYYY-MM-DD'); ALTER TABLE postgres=#创建表foo(一个varchar); 创建表 postgres=#插入foo值('2013-07-15'); 插入0 1 postgres=#将表foo ALTER列a类型日期用于\u日期(a,'yyy-MM-DD'); 更改表格 工作得很好!(我是该网站的新手,试图将此标记为正确答案,如果我没有正确回答,请告诉我)。