(postgreSQL 数据库)
我有一个日期列,格式似乎是“yyyy-mm-dd”,首先我想将该列转换为“yyyymm”。
之后,我想将该列克隆到同一个表中的另一列,我将其称为“年”,并且我只需要使用“yyyy”格式。
我还没有找到一个适用于我的案例的简单解决方案,而且这已经足够基本了,因为我通常是 SQL 的新手。
最后我希望列是这样的(不包括其他现有列)
date /*already exists*/ year /*need to create*/
201501 2015
201501 2015
201502 2015
201606 2016
干杯
最佳答案
这对你有帮助吗?
这是使用 TO_CHAR 函数中的内置日期格式。不过,我对 postgresql 并不完全熟悉,因此可能需要进行一些调整。
UPDATE
TABLENAME
SET
year = TO_CHAR(date, 'YYYY'),
date = TO_CHAR(date, 'YYYYMM');
如果“年”列不存在,您必须先使用 ALTER TABLE
语句创建它
ALTER TABLE [table_name] ADD COLUMN [column_name] [data_type] {collation} {column_contstraint};
我建议检查 documentation正确使用。
编辑:如果您担心更新所有行所需的时间(我看到您在另一个答案中评论说您有大约 200 万条记录),那么我建议阅读 this post .
它解释了用数据从头开始创建表而不是更新每一行可能会更快。
关于SQL 克隆和转换日期列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41589085/