2017-02-07 325 views
0

在我的PostgreSQL的查詢我收到此錯誤:PostgreSQL的日期格式無效錯誤

Error: SQL Error: SQLSTATE[22007]: Invalid datetime format: 7 ERROR: invalid input syntax for type date: "'" 

的log_field2字段是varchar數據類型而我卻強制轉換爲日期(::日期),然後簽入的值名爲{START_DATE}和{END_DATE}的參數並將其放在單引號中,但無濟於事。有人可以提供一些方向/幫助,以瞭解問題可能是什麼?任何幫助表示讚賞。

這裏是我的查詢:

SELECT sle.source_id, 
count(sle.*), 
sum(coalesce(log_field20::numeric, 0)) || ' min' as duration_total 
FROM custom_field_log_entries sle 
INNER JOIN student_enrollment se 
ON (sle.source_id=se.student_id and se.custom_9 is null 
AND se.syear = {SYEAR} 
AND se.end_date is null) 
INNER JOIN schools sc on (se.school_id=sc.id) 
WHERE sle.field_id = 328 
**AND log_field2::date BETWEEN '{START_DATE}' AND '{END_DATE}'** 
AND (log_field20 ~ '^[0-9]+$' or log_field20 is null) --{SCHOOL_SPECIFIC} 
AND se.school_id = {SCHOOL_ID} 
GROUP BY sle.source_id 

回答

0

您必須更改{SYEAR}, '{START_DATE}', '{END_DATE}' 到某個值:

SELECT sle.source_id, 
     count(sle.*), 
     sum(coalesce(log_field20::numeric, 0)) || ' min' as duration_total 
FROM custom_field_log_entries sle 
INNER JOIN student_enrollment se 
     ON (sle.source_id=se.student_id and se.custom_9 is null 
      AND se.syear = 2017 
      AND se.end_date is null) 
INNER JOIN schools sc ON (se.school_id=sc.id) 
WHERE sle.field_id = 328 
    AND log_field2::date BETWEEN '2017-01-10' AND '2017-01-25' 
    AND (log_field20 ~ '^[0-9]+$' or log_field20 is null) --{SCHOOL_SPECIFIC} 
    AND se.school_id = 1 -- {SCHOOL_ID} 
GROUP BY sle.source_id 
+0

我的價值觀傳遞從一個PHP頁面。對不起,我應該澄清一點。 – Melinda