首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

计算PostgreSQL中两个日期之间的工作时间

在计算PostgreSQL中两个日期之间的工作时间时,可以使用EXTRACT函数和DATE_PART函数。这两个函数可以帮助您计算两个日期之间的天数、小时数、分钟数和秒数。

例如,如果您想计算两个日期date1date2之间的工作时间,可以使用以下查询:

代码语言:txt
复制
SELECT EXTRACT(EPOCH FROM (date2 - date1)) AS seconds_between;

这将返回两个日期之间的秒数。如果您想要计算工作时间(不包括周末和节假日),则需要使用更复杂的查询。

在计算工作时间时,可以使用以下查询:

代码语言:txt
复制
SELECT 
    COUNT(*) FILTER (WHERE EXTRACT(DOW FROM d) NOT IN (0,1)) * 8 * 3600 + 
    COUNT(*) FILTER (WHERE EXTRACT(DOW FROM d) IN (2,3,4,5)) * 1800
FROM generate_series(date1, date2, INTERVAL '1 day') d
WHERE d >= date1 AND d <= date2;

这将返回两个日期之间的工作时间(以秒为单位)。

需要注意的是,这个查询假设工作日是周二到周五,工作时间是上午9点到下午5点。如果您的工作时间和工作日不同,则需要相应地修改查询。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券