我需要使用这样的子查询来更新日期,我还没有获得日期编号。
UPDATE grh
SET date = to_date('subquery.year-subquery.week_number','YYYYWW')
FROM (SELECT year,week_number
FROM grh) AS subquery
我如何在to_date功能中使用subquery.year变量?
尝试1:所以我已经尝试过了:
UPDATE grh SET date = to_date(week_number, 'WW');
我有这种错误:
函数to_date(整数,未知)不存在。
但是,如果您查看此文档:https://www.techonthenet.com/postgresql/functions/to_date.php
他们说WW存在,用于指定星期数。我的“日期”列是日期格式。
TRY 2:,这是可行的:
UPDATE grh SET date = to_date('42018', 'WWYYYY');
当我尝试使用这样的变量时,它不起作用:
UPDATE grh SET date = to_date(string_agg(week_number,2018), 'WWYYYY');
答案 0 :(得分:1)
在Postgres(和大多数其他SQL风格)中,串联运算符为||
UPDATE grh SET date = to_date(week_number||'2018', 'WWYYYY');
答案 1 :(得分:0)
to_date函数的链接文档: to_date(string1,format_mask) 错误是 函数to_date(整数,未知)不存在。
所以我认为您的第一个参数类型不匹配
编辑1 : 为声明 UPDATE grh SET date = to_date(string_agg(week_number,2018),'WWYYYY'); 如果您查看函数string_agg的文档,则会看到输入参数的预期类型是字符串,至少第二个参数是整数