PGSQL将时间转换为秒
为什么我的代码出错PGSQL将时间转换为秒,sql,postgresql,Sql,Postgresql,为什么我的代码出错 SELECT EXTRACT(SECOND FROM TIME total_time) from tr_empl_quiz; 我用这个代码出错了 SELECT EXTRACT(EPOCH FROM TIMESTAMP total_time) from tr_empl_quiz; 这是我的表格内容tr_emp_测验,类型数据是没有时区的时间 total_time ============ 00:01:00 00:02:00 当您使用extract()函数时,您将获得日
SELECT EXTRACT(SECOND FROM TIME total_time) from tr_empl_quiz;
我用这个代码出错了
SELECT EXTRACT(EPOCH FROM TIMESTAMP total_time) from tr_empl_quiz;
这是我的表格内容tr_emp_测验,类型数据是没有时区的时间
total_time
============
00:01:00
00:02:00
当您使用
extract()
函数时,您将获得日期/时间部分的值。在你的例子中,秒是零,所以这就是你得到的
Postgres确实支持您想要的,使用了可能不直观的名称epoch
<代码>历元返回秒数。对于日期或日期时间值,这是自1970-01-01(Unix时间的开始)以来的数字。对于时间
或间隔
而言,它是该期间的总秒数。因此:
select extract(epoch from time '00:02:00')
返回120
令人惊讶的是,forepoch
没有提到它对time
数据类型有效。该功能与该功能的功能完全一致。要么文档(通常非常优秀)忽略了时间;或时间
被视为间隔
对于表中的列,只需执行以下操作:
SELECT EXTRACT(EPOCH FROM total_time)
FROM tr_empl_quiz;
或:
取决于你想要什么。什么是
时间
关键字?只需extract(从总时间算起的秒数)
就可以了。extract(从总时间算起的秒数)我在60秒和120秒内得到0值,但如果我像这样硬编码extract(从时间'00:01:00'算起的秒数),我得到60我成功尝试选择extract(从时间'00:02:00'算起的历元数),但如果我从表中设置字段,该怎么办
SELECT EXTRACT(EPOCH FROM CAST(total_time as time))
FROM tr_empl_quiz;