子查询不适用于 Date_Part()
Sub-query is Not Working for Date_Part()
我想将子查询作为参数传递给 Postgres 的 EXTRACT()
函数以获取星期几,但它不起作用。
工作代码:
SELECT EXTRACT(dow FROM DATE '2018-06-07');
It returns:
+-------------+
| date_part |
|-------------|
| 4.0 |
+-------------+
无效代码:
SELECT EXTRACT(DOW FROM DATE
(SELECT start_date from leaves where submitted_by=245 and type_id = 16)
);
It returns
syntax error at or near "SELECT"
LINE 1: SELECT EXTRACT(DAY FROM DATE (SELECT submitted_on FROM leave...
我不知道为什么 EXTRACT()
函数不接受子查询结果作为查询:
SELECT start_date from leaves where submitted_by=245 and type_id = 16;
returns以下我认为相同的我已经通过了
工作示例中的日期字符串。
+--------------+
| start_date |
|--------------|
| 2018-06-07 |
+--------------+
有人可以更正它或让我知道其他获取星期几的方法。
只需将其应用于 select 的列:
SELECT EXTRACT(DOW from start_date)
from leaves
where submitted_by=245 and type_id = 16
如果你真的想使用标量子查询,那么你必须去掉 DATE
关键字,它只需要指定日期常量。
SELECT EXTRACT(DOW FROM
(SELECT start_date from leaves where submitted_by=245 and type_id = 16)
);
把函数放在里面select
:
select (select extract(dow from start_date)
from leaves
where submitted_by = 245 and type_id = 16
)
我看不出为此在 select
中使用子查询有什么好处(而不是——比如说——将子查询移动到 from
)。但这应该做什么你要。
我想将子查询作为参数传递给 Postgres 的 EXTRACT()
函数以获取星期几,但它不起作用。
工作代码:
SELECT EXTRACT(dow FROM DATE '2018-06-07');
It returns:
+-------------+
| date_part |
|-------------|
| 4.0 |
+-------------+
无效代码:
SELECT EXTRACT(DOW FROM DATE
(SELECT start_date from leaves where submitted_by=245 and type_id = 16)
);
It returns
syntax error at or near "SELECT"
LINE 1: SELECT EXTRACT(DAY FROM DATE (SELECT submitted_on FROM leave...
我不知道为什么 EXTRACT()
函数不接受子查询结果作为查询:
SELECT start_date from leaves where submitted_by=245 and type_id = 16;
returns以下我认为相同的我已经通过了 工作示例中的日期字符串。
+--------------+
| start_date |
|--------------|
| 2018-06-07 |
+--------------+
有人可以更正它或让我知道其他获取星期几的方法。
只需将其应用于 select 的列:
SELECT EXTRACT(DOW from start_date)
from leaves
where submitted_by=245 and type_id = 16
如果你真的想使用标量子查询,那么你必须去掉 DATE
关键字,它只需要指定日期常量。
SELECT EXTRACT(DOW FROM
(SELECT start_date from leaves where submitted_by=245 and type_id = 16)
);
把函数放在里面select
:
select (select extract(dow from start_date)
from leaves
where submitted_by = 245 and type_id = 16
)
我看不出为此在 select
中使用子查询有什么好处(而不是——比如说——将子查询移动到 from
)。但这应该做什么你要。