PostgreSQL中新增ISO周列遇阻:缺少datepart函数
PostgreSQL 新增ISO周列解决方案
操作步骤
新增Week_ISO列
先给目标表添加整数类型的Week_ISO列,替换your_table_name为你的实际表名:ALTER TABLE your_table_name ADD COLUMN Week_ISO INTEGER;计算并填充ISO周数据
PostgreSQL没有SQL Server的datepart函数,但可以用EXTRACT或to_char函数实现ISO周提取,结合你的日期格式DD-mon-YY,提供两种可行方式:方法一:使用EXTRACT函数
UPDATE your_table_name SET Week_ISO = EXTRACT(ISO_WEEK FROM to_date(Trans_date, 'DD-mon-YY'));to_date(Trans_date, 'DD-mon-YY'):将字符串格式的交易日期转换为PostgreSQL标准日期类型EXTRACT(ISO_WEEK FROM ...):直接提取日期对应的ISO周数
方法二:使用to_char函数
UPDATE your_table_name SET Week_ISO = to_char(to_date(Trans_date, 'DD-mon-YY'), 'IW')::INTEGER;'IW'是ISO周的专用格式符,返回字符串类型的周数,再通过::INTEGER转换为整数
验证结果
执行完成后,通过以下查询确认结果:
SELECT CustomerID, Trans_date, Week_ISO FROM your_table_name;
返回的Week_ISO值会与你给出的预期结果完全匹配。
内容的提问来源于stack exchange,提问作者cillaw clarss
相关产品推荐
相关产品推荐

