首页 > 解决方案 > 在 to_date 中使用子查询变量

问题描述

我需要用这样的子查询更新我的日期,我没有得到日期编号。

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(integer,unknown) 不存在。

但是如果您查看此文档:https ://www.techonthenet.com/postgresql/functions/to_date.php

他们说 WW 存在,用于指​​定周数。我的“日期”列是日期格式。

尝试 2:这是有效的:

  UPDATE grh SET date = to_date('42018', 'WWYYYY');

一旦我尝试使用这样的变量,它就不起作用:

UPDATE grh SET date = to_date(string_agg(week_number,2018), 'WWYYYY');

标签: postgresql

解决方案


在 Postgres(和大多数其他 SQL 风格)中,连接运算符是||

UPDATE grh SET date = to_date(week_number||'2018', 'WWYYYY');

推荐阅读