5

私はこれを見つけるためにほとんどどこでも見ました。次の SQL ステートメントがあります。

SELECT COUNT(*) FROM `job_sheet`
LEFT JOIN deliveries ON job_sheet.job_id=deliveries.jID
WHERE job_sheet.completion=".ORDER_COMPLETE."
AND deliveries.ship_date>job_sheet.delivery_date

これは基本的に、どの完了したジョブがdelivery_date(DUE DATE) を過ぎて出荷されたかを示しています。ただし、実際の配達日は、データベースの内容よりも 7営業日 (休日は関係ありません。基本的には週末をスキップするだけです) 先になります。

私ができるようにする必要があるのは、このセクションに 7 日を追加することです。deliveries.ship_date>job_sheet.delivery_date + 7 business days

私の最初の考えは DATEADD() 関数を使用することでしたが、使用することはめったになく、この状況での実装方法が非常に混乱しています。

日付は次のように保存されます: YYYY-MM-DD

4

3 に答える 3

2

これを試して

   SELECT COUNT(*) FROM `job_sheet`
   LEFT JOIN deliveries ON job_sheet.job_id=deliveries.jID
   WHERE job_sheet.completion=".ORDER_COMPLETE."
   AND  deliveries.ship_date> DATE_ADD(`job_deliveries.ship_date` , INTERVAL 7 DAY) 

ADD_DATEの参照

于 2012-12-21T16:22:14.857 に答える
1

これは動作するはずですが、チェックする mysql インスタンスがインストールされていないため、テストしていません。

SELECT COUNT(*) FROM `job_sheet`
LEFT JOIN deliveries ON job_sheet.job_id=deliveries.jID
WHERE job_sheet.completion=".ORDER_COMPLETE."
AND deliveries.ship_date>DATE_ADD(job_sheet.delivery_date,INTERVAL 7 DAY)
于 2012-12-21T16:25:00.390 に答える