пытаюсь сделать SET значения date, но получаю все время какие-то ошибки, то syntax error в строке, то ему не нравится что это строка (в формате даты). Что нужно PG скормить, чтоб он не ругался на тип даты? Ситуация уникальная, до этого сто раз делал - все было нормально...Что могло пойти не так?
Конкретнее надо
можно как-то средствами SQL заставить типизировать параметр в дату, чтобы например, при получении строки 2022-02-02 он перевел ее в дату и не бухтел?
что это значит? Дата и так типа дата. Её не надо типизировать
какая у тебя СУБД?
Вне контекста конкретной СУБД это бессмысленно обсуждать.
Цитата из коммента, по этому предположил Что нужно PG скормить, чтоб он не ругался на тип даты?
А, сори, не заметил.
Спасибо, нифига не работает правда, но познавательно. @MasterZiv тоже спс за внимание к вопросу
а что не работает то?
скриншот, ошибку или сам запрос приложите, тогда больше шансов подсказать
Укажи явно формат даты при преобразовании из строки в дату. В СУБД (в 99%) нет в SQL литералов для представления значения типа timestamp/datetime. Везде используются строки и функции преобразования в дату по определённому формату.
Сорри, психанул и пошел отдыхать =) Во-первых никаких функций мне PG применить не давала: на дату типа 05-02-2022 - function to_date(integer, unknown) does not exist, на дату типа 2022-02-14T18:54:25.218Z - syntax error at or near "T18", другие вариации также давали ошибку синтаксиса, что касается передачи-не передачи второго аргумента - не важно - просто под конец сделал тупо как в доке. Изыскания же без функции отдают ошибки на дату 05-02-2022 - column "deleted_at" is of type timestamp with time zone but expression is of type integer, при попытке передать 2022-02-14T18:54:25.218Z (что вроде бы и является тем, что нужно) - я получаю все тот же syntax error at or near "T18".... Толи лыжи не едут, толи я.....и в целом толя очевидна, но я надеюсь на чудо😂😂
И что это за API?
В смысле -- как вы это потом вызываете?
я извиняюсь, но не очень тебя понял, ты говоришь о переводе в этот долбанный timestamp силами моего ЯП, а PG скармливать строку? Если так, то это именно то, с чего я начал😵💫
эммм, я все готов рассказать, без проблем, но это же вроде как уже не скл, это мои там всякие штуки дрюки в моей среде на моем ЯП....или я не понял вопрос?
На первый взгляд это выглядит как неумение в передачу параметров в SQL и готовый injection. Возможно, что я ошыбаюсь, и в твоём языке/API такая передача параметров допустима.
И да, прекратите копипастить текст картинками.
вот в DATE у тебя должно лежать TO_DATE('05-02-2022', 'dd-mm-yyyy') если не брать в расчет твой ЯП и остальное
Я же писал - задай формат. Либо используй 1000% верный формат даты.
нет, тут я говорил о приведении в datetime силами PG. Вызови функцию, и приведи к дате и времени, указав явно формат. Функцию тебе уже давали.
На самом деле оба приведённых формата вполне понимает postgres дефолтным парзером.
но все-таки лучше приучать всегда писать с маской, иначе рано или поздно может стрельнуть в колено
Вполне возможно, что ты ошибаешься. Напр. в питоне для PG синтакс типа and t1.field = %s , но это не подстановка строки , а именно бинд параметра.
что тогда там у него?
Возможно. Именно поэтому я и спросил, чем он там пользуется.
java script,сервер на nest
Очень вероятно -- что неумение в передачу параметров SQL и готовый injection. Но есть масса вариантов, конечно.
можно еще раз? я не понял, что делать не надо...не вставлять картинки вместе с текстом?
Не вставлять картинки, которые сфотографировали текст.
В nest, на секундочку, нет модулей доступа к базам данных...
я, видимо, не понимаю, о чем речь, поэтому промолчу =)
короче у него какая-то магия с непринятием аргументов в функцию to_date...короче вот так завелось, дальше дебажить буду
По-моему оба вопроса -- каким API вы пользуетесь для этого запроса, и как конкретно применяете -- вполне просты. Впрочем, у меня тут третий возник -- как вы получаете и преобразуете вашы переменные date и serviceId
Именно потому что мне вопрос показался крайне странным, я решил, что я не втыкаю о чем он =) Что значит нет модулей, есть секвалайз, есть че угодно, я на этом легасе чудище даже без секвалайза, просто прямыми запросам аперирую...
ну вот это именно то, что изначально вам и сказали. про to_date с маской
(Со вздохом) Имя-то у этого "legacy чудища" есть?
ну это бы не давало ошибки преобразования даты, и давало бы ошибки синтаксиса — у него там нет кавычек вокруг параметра.
я щас поиграюсь с вариантами - вернусь и доложу, что не так было
У него, когда он полный таймстамп пишэт -- ошыбку синтаксиса и выдаёт. А когда дату 05-02-2022 -- это очевидное вычитание цэлых с результатом -2019, который в дату не очень преобразуется...
а, тогда может и так.
😂😂😂пздц....точно...
Обсуждают сегодня