2016-11-23 11 views
1

Я хочу вставить значение времени отметки unix в столбец timestamp postgres, используя метод PHP pg_query_params, но застрял.unix second в postgres timestamp с помощью 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); 
+0

это он! Спасибо за ответ - и извините за задержку. – Gisela