【发布时间】:2018-12-03 12:10:46
【问题描述】:
在我的考勤应用程序中使用 PostgreSQL 数据库。
我有一张包含进出时间的表格(hh:mm:ss.us 格式)。
当我减去时间 (OUT -IN) 来计算工作时间时,由于精度,结果与预期不符。
如果 IN 时间是“22:12:56.09” & OUT TIME 是“22:14:06.06”,仅考虑 HH:mm 的差异应该是 00:02,但它实际上显示“00:01:09.97”在 Excel 中变为“00:01”,仅使用 HH:mm。
我正在尝试将时间从 hh:mm:ss.us 转换为 hh:mm(时间格式),以便我可以减去时间并获得所需的输出。
我在 SQL Server 中做过类似的事情,但在 PostgreSQL 中没有找到任何函数。请指教。
【问题讨论】:
-
这些列是什么数据类型?
time列没有“格式”,您可以使用to_char()以您想要的任何格式显示它们。从您的描述看来,您似乎真的想要一个interval,它是一个持续时间而不是time(它代表一个时间点,不是以分钟和秒为单位的持续时间)跨度> -
使用
(p)设置“精度”,如此处所述。 postgresql.org/docs/9.6/static/datatype-datetime.html
标签: postgresql datetime time