[英]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;
返回以下內容,我認為與在工作示例中作為日期字符串傳遞的內容相同。
+--------------+
| start_date |
|--------------|
| 2018-06-07 |
+--------------+
有人可以改正它,還是讓我知道其他方法來獲取星期幾。
只需將其應用於選擇的列:
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
。但這應該可以實現您想要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.