在PostgreSQL中将时间转换为秒 [英] Convert time to seconds in PostgreSQL

查看:232
本文介绍了在PostgreSQL中将时间转换为秒的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个要转换为秒的时间值04:30:25。
是否有专用的功能来执行此操作?

I have a time value 04:30:25 that I want to convert to seconds. Is there any dedicated function to do this?

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

I know that we can extract hours, minutes and seconds, then calculate the seconds.

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

但是我想要其他方式...

But I want some other way...

推荐答案

也许您可以使其功能(只是快速设置,请根据需要进行检查和更改)?

Perhaps you can make it a function (just a quick setup, please review and change as needed)?

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';

然后只需在查询中使用它即可:

Then just use it in your queries:

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

返回值:

16225

这篇关于在PostgreSQL中将时间转换为秒的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆