Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将postgresql间隔格式转换为php中可用的格式_Php_Postgresql - Fatal编程技术网

将postgresql间隔格式转换为php中可用的格式

将postgresql间隔格式转换为php中可用的格式,php,postgresql,Php,Postgresql,我在PHP中有一个函数,它以以下格式返回从postgresql数据库经过的时间 00:34:01.024416 在php中,这些数据以“字符串”的形式存储,这没有多大用处。我可以在PHP中使用什么来计算数据库提供的数据?您可以将postgres中的数据转换为毫秒或微秒。这可以存储在PHP中,稍后用于操作所花费的总时间。。。下面这样的查询将在这方面帮助您 SELECT (EXTRACT (HOURS FROM TIME '00:34:01.024416') * 3600000) :: int A

我在PHP中有一个函数,它以以下格式返回从postgresql数据库经过的时间

00:34:01.024416

在php中,这些数据以“字符串”的形式存储,这没有多大用处。我可以在PHP中使用什么来计算数据库提供的数据?

您可以将postgres中的数据转换为毫秒或微秒。这可以存储在PHP中,稍后用于操作所花费的总时间。。。下面这样的查询将在这方面帮助您

SELECT
(EXTRACT (HOURS FROM TIME '00:34:01.024416') * 3600000) :: int AS "hour-millisecond",
(EXTRACT (MINUTE FROM TIME '00:34:01.024416') * 60000) :: int AS "minute-millisecond",
(EXTRACT (SECOND FROM TIME '00:34:01.024416') * 1000) :: int AS "second-millisecond",
(EXTRACT (MILLISECONDS FROM TIME '00:34:01.024416')) :: int AS "millisecond"


[编辑]

SELECT (EXTRACT (HOURS FROM  elapsedtime_result.elapsedtime) * 3600000) :: int + 
(EXTRACT (MINUTE FROM  elapsedtime_result.elapsedtime) * 60000) :: int + 
(EXTRACT (SECOND FROM  elapsedtime_result.elapsedtime) * 1000) :: int + 
(EXTRACT (MILLISECONDS FROM  elapsedtime_result.elapsedtime)) :: int AS millisecondelapsed 
FROM (SELECT current_timestamp - max(createdon) elapsedtime FROM testtable) AS elapsedtime_result

把它转换成总的微秒数怎么样?@NandakumarV你能给我举个例子说明如何用PHP来实现吗?我来自Java背景,没有PHPIs方面的经验,在查询中使用select语句,而不是静态地给出时间?因此,在“00:34:01.024416”中没有返回interval的查询。
SELECT (EXTRACT (HOURS FROM  elapsedtime_result.elapsedtime) * 3600000) :: int + 
(EXTRACT (MINUTE FROM  elapsedtime_result.elapsedtime) * 60000) :: int + 
(EXTRACT (SECOND FROM  elapsedtime_result.elapsedtime) * 1000) :: int + 
(EXTRACT (MILLISECONDS FROM  elapsedtime_result.elapsedtime)) :: int AS millisecondelapsed 
FROM (SELECT current_timestamp - max(createdon) elapsedtime FROM testtable) AS elapsedtime_result