postgresql — unix секунда в метку времени postgres с использованием php pg_query_params

Я хочу вставить значение метки времени Unix в столбец метки времени postgres, используя метод PHP pg_query_params, но застрял.

Вот неполный код:

$con = pg_connect(...);
$stmt = 'INSERT INTO my_table (submitted) VALUES ($1)';
$ts = 1479939387;
$values = [translate_timestamp_into_sth_postgres_accepts($ts)];
$res = pg_query_params($con, $stmt, $values);

Q: как преобразовать значение секунд unix в sth. Postgres принимает?

1

Решение

Используйте функцию to_timestamp(double precision):

select to_timestamp(1479939387) at time zone 'utc' as tstamp;

tstamp
---------------------
2016-11-23 22:16:27
(1 row)

Ваш код может выглядеть так (используя часовой пояс по умолчанию):

$con = pg_connect(...);
$stmt = 'INSERT INTO my_table (submitted) VALUES (to_timestamp($1))';
$ts = 1479939387;
$res = pg_query_params($con, $stmt, $ts);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]