如何从postgres中查询提取小时数

18 sql database postgresql

我的表中有时间戳,我想从中提取一小时.我搜索并找到提取函数但无法用作查询.我需要在varchar中转换第一个时间戳,然后从中提取小时数吗?这是我的查询:

select extract(hour from timestamp '2001-02-16 20:38:40') // example
Run Code Online (Sandbox Code Playgroud)

实际查询:

select extract(hour from timestamp observationtime) from smartvakt_device_report
Run Code Online (Sandbox Code Playgroud)

red*_*neb 33

以下应该有效

select extract(hour from observationtime) from smartvakt_device_report
Run Code Online (Sandbox Code Playgroud)


Jus*_*hak 12

SELECT to_char(now(), 'HH24:MI:SS')  hour_minute_second
Run Code Online (Sandbox Code Playgroud)

  • 请在您的答案中添加与您的代码完全相同的描述。 (3认同)

Phe*_*nyl 7

EXTRACT不能与 Grafana 一起使用,但date_part可以。我的解决方案是:

SELECT date_part('hour', observationtime::TIMESTAMP) FROM smartvakt_device_report;
Run Code Online (Sandbox Code Playgroud)

参考: https: //www.postgresql.org/docs/current/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT


Mur*_*nik 6

这个词timezone是多余的(读作:错误的)。您只需提供列的名称。例如:

db=> select extract(hour from observationtime) from smartvakt_device_report;

 date_part 
-----------
        19
(1 row)
Run Code Online (Sandbox Code Playgroud)