#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'
;