将日期差异存储为数字值,并从该数字值中提取天、小时和分钟。

huangapple go评论53阅读模式
英文:

Storing date difference as Numeric value and extract Days,Hours,Minutes from that numeric value

问题

一个表格包含了两个不同的日期,开始日期和结束日期。一个人可以在一个月内多次签到和签出。我的要求是计算这两天之间的时间差,并将其存储在另一个表格中,以数字的形式显示在UI上,格式为天:小时:分钟。

人员 开始时间 结束时间
PRS 2022年10月1日 1:43 2022年10月1日 3:40
PRS 2022年10月3日 10:11 2022年10月5日 12:00
PRS 2022年10月11日 3:00 2022年10月12日 7:00

有成千上万的人员和不同的日期。我的要求是计算每一行的时间差并累加,将其存储在另一个表格中,以任何格式表示,并提供总和以天:小时:分钟的形式。

我尝试将这些数字转换为时间间隔,但当我尝试将所有不同的时间间隔相加时,结果不正确。

英文:

Have a table with 2 different days, Start Date and End date.
A person can check in and checkout multiple times in a month. My requirement is to calculate time difference between those 2 days and store in different table as number and display in UI as DAYS:HOURS:MIN

Person Start End
PRS 10-1-2022 1:43 10-1-2022 3:40
PRS 10-3-2022 10:11 10-5-2022 12:00
PRS 10-11-2022 3:00 10-12-2022 7:00

There are thousands of persons with difference dates. My requirement is Calculate the time difference for each row sum up and store it in different table as any type and provide total sum in number of days:Hours:Min.

I tried to convert those numbers as interval but when I try to add all different intervals the results are off.

答案1

得分: 1

使用此处的 justify_interval 日期/时间函数

select justify_interval(('10-1-2022 3:40'::timestamp - '10-1-2022 1:43'::timestamp) 
 + '10-5-2022 12:00'::timestamp - '10-3-2022 10:11'::timestamp );

 justify_interval 
------------------
 2  03:46:00
英文:

Use justify_interval from here Date/time functions


select justify_interval(('10-1-2022 3:40'::timestamp - '10-1-2022 1:43'::timestamp) 
 + '10-5-2022 12:00'::timestamp - '10-3-2022 10:11'::timestamp );

 justify_interval 
------------------
 2 days 03:46:00

huangapple
  • 本文由 发表于 2023年2月24日 08:54:33
  • 转载请务必保留本文链接:https://go.coder-hub.com/75551724.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定