使用PostgreSQL数据库为我的考勤申请。
我有一个表,上面有进出时间(hh:mm:ss.us格式)。
当我减去时间(出-入)来计算工作时间时,由于精度的原因,结果并不像预期的那样。
如果输入时间为“22:12:56.09”,输出时间为“22:14:06.06”,则仅考虑HH:mm时的差值应为00:02,但实际上显示为“00:01:09.97”,在Excel中仅使用HH:mm时变为“00:01”。
我正在尝试将时间从hh:mm:www.example.com转换ss.us为hh:mm(时间格式),以便减去时间并获得所需的输出。
我在SQL Server中做过类似的事情,但是我在PostgreSQL中没有找到任何函数。请告知。
2条答案
按热度按时间ercv8c1e1#
首先你需要截断秒数,然后相减得到想要的结果
选择
一般溶液:
这里to_char()的作用是将结果格式设置为小时:分钟,而不包括秒。Postgres默认在interval中包括秒。
nzk0hqpo2#
您可以将date_trunc函数与时间戳一起使用。
它的工作原理是这样的:
select date_trunc('minute', out) - date_trunc('minute', in)
这将为时间戳设置分钟级精度,并将HH:mm:ss转换为HH:mm:00