Использование регистра при вставке psql

#sql #insert #case #psql

#sql #вставить #случай #psql

Вопрос:

это ошибка, которую я получаю

 ERROR:  invalid input syntax for type date: "Start_Date"
LINE 8:         'Start_Date'=(CASE WHEN (SELECT COUNT("End_Date") FR...
 

И это моя команда insert, я пытаюсь проверить, есть ли 3 даты окончания экспонатов, которые следуют за текущей датой, и если есть, то я хочу, чтобы дата начала была через 5 дней после самой ранней, в противном случае я должен был сделать дату начала 2016/05/19

 INSERT INTO Exhibits (
        "Name",
        "Start_Date",
        "End_Date",
        "Description")
SELECT
        'Name'='Modern America and the Contemporary World',
        'Start_Date'=(CASE WHEN (SELECT COUNT("End_Date") FROM exhibits where
"End_Date">CURRENT_DATE) >= 3 THEN (select Min("End_Date") 5 FROM exhibits
where "End_Date">CURRENT_DATE) ELSE '2016/05/19' END),
        'End_Date'='2017/01/10',
        'Description'='lolololololololol'
;
 

Спасибо

Ответ №1:

Вы не должны указывать столбцы в select . Попробуйте удалить эти:

 INSERT INTO Exhibits (
        "Name",
        "Start_Date",
        "End_Date",
        "Description")
SELECT
        'Modern America and the Contemporary World',
        CASE WHEN (
                SELECT COUNT(End_Date) 
                FROM exhibits 
                WHERE End_Date>CURRENT_DATE) >= 3 
             THEN (
                SELECT Min("End_Date") 5 
                FROM exhibits
                WHERE End_Date>CURRENT_DATE) 
             ELSE '2016/05/19' END,
        '2017/01/10',
        'lolololololololol'
;