Я хочу вставить значение метки времени 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 принимает?
Используйте функцию to_timestamp(double precision):
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);
Других решений пока нет …