为什么我的代码出错
SELECT EXTRACT(SECOND FROM TIME total_time) from tr_empl_quiz;
我在使用此代码时遇到错误
SELECT EXTRACT(EPOCH FROM TIMESTAMP total_time) from tr_empl_quiz;
这是我的表格内容tr_empl_quiz,类型数据是没有时区的时间
total_time
============
00:01:00
00:02:00
答案 0 :(得分:1)
使用extract()
功能时,您将获得日期/时间部分的值。在您的示例中,秒数为零,因此这就是您所获得的。
Postgres使用可能不直观的名称epoch
来支持你想要的东西。 Epoch
返回秒数。对于日期或日期时间值,这是自1970-01-01(Unix时间的开始)以来的数字。对于time
或interval
,它是该期间的总秒数。所以:
select extract(epoch from time '00:02:00')
返回120。
令人惊讶的是,epoch
的{{3}}未提及它适用于time
数据类型。功能与功能完全一致。文档(通常非常优秀)忽略了time
;或time
被视为interval
。
对于表格中的列,您只需:
SELECT EXTRACT(EPOCH FROM total_time)
FROM tr_empl_quiz;
或:
SELECT EXTRACT(EPOCH FROM CAST(total_time as time))
FROM tr_empl_quiz;
取决于你想要的东西。