我为资源(例如设施)创建了一个日历(工作日)。如何直接从数据库获取列表或至少工作日范围?
到目前为止我找到的只有Calendar和CalendarRule视图。 CalendarRule的问题在于规则是使用类似
的模式编写的"FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR"
我找不到在SQL查询中使用它的方法。
答案 0 :(得分:0)
假设工作日为mon
至fri
且您的calendar
表格与resources
表格相关联calendar.workingdays = resources.daysworked
,如果不明显将其调整为适合
SELECT EXTRACT(dow FROM timestamp (to_timestamp(c.workingdays), "YYYY-MM-DD")), r.facility
FROM Calendar c
LEFT JOIN Resources r ON c.workingdays = r.daysworked
WHERE EXTRACT(dow FROM timestamp (to_timestamp(c.workingdays, "YYYY-MM-DD"))
NOT IN (0,6)