Поле метки времени PostgreSQL не форматируется таким же образом при обновлении с помощью PHP - PullRequest
1 голос
/ 07 апреля 2009

У меня есть отметка времени с полем часового пояса в PostgreSQL. Когда я обновляю это поле, я использую что-то вроде этого:

$date = date('Y-m-d H:i:s');

Хотя SQL работает нормально, сохраненная дата выглядит немного иначе, чем классическая отметка времени с часовым поясом дата.

Example:

Default value set to "now()":
date 2009-04-06 14:39:53.662522+02

Update with a date set in php:
$date = date('Y-m-d H:i:s');
date 2009-04-06 14:39:53+02

Числа, удаленные при обновлении, вероятно, миллисекунды, но я не уверен. Хотелось бы узнать, есть ли способ получить с помощью PHP такой же формат даты?

Ответы [ 2 ]

1 голос
/ 07 апреля 2009

Если вам нужна только одна секунда с разрешением временной метки, вы должны соответствующим образом спроектировать базу данных, поскольку по умолчанию разрешение лучше, чем секунда.

Используйте, например, следующее определение столбца:

last_access_time timestamp with time zone not null
    default date_trunc('second',now())
    constraint last_access_time_full_second check (
        date_trunc('second',last_access_time)=last_access_time
    )
0 голосов
/ 07 апреля 2009

Вы можете использовать PHP-функцию microtime () для получения микросекунд.

...