[英]Date_diff with specific condition time start and time end
date_diff 是否可以有特定的開始和結束時間?
假設我的商店營業時間為上午 8 點至晚上 10 點,即 14 小時。 那段時間我有很多東西要賣。 其中一個 SKU 從 2022-11-01 下午 6 點到明天 2022-11-02 上午 11 點缺貨。
而不是計算 24 小時,我只想計算從開店到關門或到補貨。 意思是從下午 6 點到上午 11 點是 8 小時
我的查詢
select date_diff('2022-11-02 11.00 AM', '2022-11-02 06.00 PM', hour) from table
結果是 17 小時而不是 8 小時
沒有辦法配置DATE_DIFF
來為您執行此操作,但可以通過一些努力來執行您想要的操作。
您應該將日期轉換為時間戳( TIMESTAMP(yourdate)
或CAST(yourdate AS TIMESTAMP)
)並改用TIMESTAMP_DIFF 。
這將允許您以比幾天更短的間隔工作。
對於您的計算,您最終需要找到兩個時間戳之間的總時間差,然后減去非工作時間的時間范圍。
然而,計算后者並不像計算天數差乘以 8 小時(晚上 10 點到早上 6 點)那么簡單,因為您的非工作時間計算必須考慮周末和可能的假期等。因此它可能會變得非常復雜,這是我第一個鏈接中的解決方案可能出現的地方。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.