这个Postresql ALTER表有什么问题?
我有一个数据库,其中有一列varchar,我希望将其转换为时间戳。我想这样做,但不断得到语法错误,请有人建议这个Postresql ALTER表有什么问题?,sql,postgresql,timestamp,Sql,Postgresql,Timestamp,我有一个数据库,其中有一列varchar,我希望将其转换为时间戳。我想这样做,但不断得到语法错误,请有人建议 ALTER TABLE MY_TABLE ALTER COLUMN MY_COLUMN TYPE timestamp USING to_timestamp(MY_COLUMN::double precision); MY_列的类型为VARCHAR255 NOT NULL 错误内容如下: Syntax error in SQL statement "ALTER TABLE MY_TA
ALTER TABLE MY_TABLE
ALTER COLUMN MY_COLUMN TYPE timestamp
USING to_timestamp(MY_COLUMN::double precision);
MY_列的类型为VARCHAR255 NOT NULL
错误内容如下:
Syntax error in SQL statement "ALTER TABLE MY_TABLE
ALTER COLUMN MY_COLUMN TYPE TIMESTAMP
USING[*] TO_TIMESTAMP(MY_COLUMN::DOUBLE PRECISION) "; SQL statement:
ALTER TABLE MY_TABLE
ALTER COLUMN MY_COLUMN TYPE timestamp
USING to_timestamp(MY_COLUMN::double precision) [42000-176] 42000/42000
在Grails中运行的Postgresql似乎不支持时间戳。正如问题注释中带有“无”名称的@a_horse_所指出的,代码是有效的。感谢您指出sqlfiddle.com,我还没有意识到这样一个资源的存在。您忽略了分享您所遇到的语法错误的确切内容。不确定语法,但这是一种冒险的方法。如果varchar列有'fred'和'barney'这样的值怎么办?对我来说很有用:我知道数据库中的这个列中绝对没有非数字字符,我只想将该列转换为时间戳,或者创建一个替换列,其中的值是时间戳,这些时间戳是将unix epoch的字符串表示形式转换为时间戳后创建的。好的,谢谢-数据库是在Grails内部运行的数据库,因此可能PSQL的版本/变体有问题。在没有alter table的情况下,是否还有其他方法可以做到这一点,比如创建一个temp列,我可以在以后处理它?