我有一个时间值04:30:25,我想转换成秒.

我知道我们可以提取小时、分钟和秒,然后计算秒数.

SELECT EXTRACT(hour FROM t)*60*60
       + EXTRACT(minutes FROM t)*60
       + EXTRACT(seconds FROM t)
  FROM test; 

但我想换个方式...

推荐答案

也许你可以让它成为一个功能(只是一个快速设置,请查看并根据需要进行更改)?

CREATE OR REPLACE FUNCTION to_seconds(t text)
  RETURNS integer AS
$BODY$ 
DECLARE 
    hs INTEGER;
    ms INTEGER;
    s INTEGER;
BEGIN
    SELECT (EXTRACT( HOUR FROM  t::time) * 60*60) INTO hs; 
    SELECT (EXTRACT (MINUTES FROM t::time) * 60) INTO ms;
    SELECT (EXTRACT (SECONDS from t::time)) INTO s;
    SELECT (hs + ms + s) INTO s;
    RETURN s;
END;
$BODY$
  LANGUAGE 'plpgsql';

然后在你的查询中使用它:

SELECT to_seconds('04:30:25');

返回:

16225

Postgresql相关问答推荐

Postgis超过2个表的查询在运行时爆炸

PostgreSQL无效语法

为什么 Postgres 中的 now() 和 now()::timestamp 对于 CET 和 CEST 时区如此错误?

Postgres:一次插入多行时自定义upsert(存储过程?)?

如何在 kubernetes 中安全地重启 postgresql 容器?

有没有办法使用postgresql将具有不同ID的同一行多次添加到表中?

无法从在 wsl 2 上运行的服务之一连接到在 wsl 2 上的容器中运行的 postgres 数据库

在 KnexJS 中插入

使用 JDBC 连接到 PostgreSql 的本地实例

是否可以使用 pgAdmin4 自动格式化/美化 SQL 查询?

如何将 DELETE 的返回值插入到 postgresql 中的 INSERT 中?

在 row_to_json 函数中 Select 查询

PostgreSQL:使用 psql 命令行实用程序时 Windows 上的编码问题

Postgres jsonbNOT contains运算符

Rails:PG :: InsufficientPrivilege:错误:permission denied for relation schema_migrations

如何将主键添加到视图?

POSTGRESQL 中的 CHARINDEX (SQL SERVER) 相似函数是什么?

防止 CHARACTER VARYING 字段中出现空字符串

python pip install psycopg2 安装错误

Postgresql:备份所有表 struct ,但只备份少数数据表