Невозможно вставить дату (Y-m-d H: i: s) в Postgres "отметка времени" - PullRequest
1 голос
/ 26 октября 2011

Я пытаюсь вставить данные в Postgres с помощью cakephp, который включает дату.

Столбец в моей базе данных - timestamp without timezone, и у меня есть строка даты-времени "Y-m-d H:i:s" (также пытается с помощью int).

Должен ли я привести это значение?

Ответы [ 2 ]

1 голос
/ 26 октября 2011

Вы не должны преобразовывать вставленные значения, если текстовый литерал однозначен и принят в формате.

Не путайте дату ('2011-10-21') с отметкой времени ('2011-10-21 12:10:23').
Это совершенно законно для отметки времени :

INSERT INTO tbl (timestamp_col)
VALUES ('2011-01-01 0:0:0');

Но дата , которую вы должны разыграть, в результате '2011-01-01 0: 0: 0' в этом случае:

INSERT INTO tbl (timestamp_col)
VALUES ('2011-01-01'::timestamp);

Формат ISO 8601 'гггг-мм-дд' для даты и 'гггг-мм-дд чч: мм: сс' для временной карты однозначен для любого языка . Другие форматы могут зависеть от вашей локали.

0 голосов
/ 26 октября 2011

использовать

'Y-m-d H:i:s'::timestamp

Не забывайте одинарные кавычки

например

select '2011-01-01'::timestamp
...