172 похожих чатов

Парни, привет, подскажите, Как вставить функцию в шаблонизированную строку запроса? Поле

created имеет тип timezone. Хочу привести исходные данные к этому типу с помощью postgre'вской функции TO_TIMESTAMP().
Как это сделать?
INSERT INTO data.source(created, created_utc) VALUES($1, $2)

Если вставляю функцию непосредственно в значения, то такая ошибка:
error: invalid input syntax for type timestamp with time zone: "TO_TIMESTAMP('1581569438')"

Если делаю так:
INSERT INTO data.source(created, created_utc) VALUES(TO_TIMESTAMP('$1'), TO_TIMESTAMP('$2'))
То ошибка следующая:
duplicate key value violates unique constraint "source_pkey"

7 ответов

8 просмотров

> Если вставляю функцию непосредственно в значения Потому что "TO_TIMESTAMP('1581569438')" не является корректным представлением timestamptz. > Если делаю так: Это более-менее правильно (смотря какие там типы данных. > duplicate key value violates unique constraint "source_pkey" А вот это уже что-то совсем другое — смотрите, почему там duplicate.

Alexey-Chasnoytz Автор вопроса
Yaroslav Schekin
> Если вставляю функцию непосредственно в значения...

С duplicate разобрался, а в чем еще мой косяк? Не очень понял

Alexey Chasnoytz
С duplicate разобрался, а в чем еще мой косяк? Не ...

Я не знаю, как ещё объяснить. :( Что касается типов данных — я этой таблицы не видел, так что не знаю, правильно это или нет.

Alexey-Chasnoytz Автор вопроса
Yaroslav Schekin
Я не знаю, как ещё объяснить. :( Что касается типо...

>"TO_TIMESTAMP('1581569438')" не является корректным представлением timestamptz Следует использовать другую функцию приведения типа? У меня просто timestamp with timezone

Alexey Chasnoytz
>"TO_TIMESTAMP('1581569438')" не является корректн...

Там должна быть правильная константа (или параметр), которая может быть преобразована в тип timestamptz (например, '2021-01-08 07:35:32-05'), а не вот это вот. ;)

Yaroslav Schekin
Там должна быть правильная константа (или параметр...

to_timestamp() используется для перевода Unix epoch в timestamp. по хорошему надо сделать параметр цифровой константой, в остальном валидный случай.

Виктор Егоров
to_timestamp() используется для перевода Unix epoc...

Причём тут "to_timestamp()"? ;) Там строка TO_TIMESTAMP('1581569438') передаётся в качестве параметра в INSERT INTO data.source(created, created_utc) VALUES($1, $2) И в этом-то и проблема. См. https://t.me/pgsql/274763

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта