看板 PHP 關於我們 聯絡資訊
※ 引述《JYHuang (夏天到了,冷不起來了說)》之銘言: : 要從撈出來的資料比對欄位B的日期 : 是否在欄位A日期+n天的區間內(排除六日) : 一開始打算直接在SQL Server做判斷的.. : 不過這樣SQL會落落長的落落長,而且加重SQL Server的Loading : 接著打算想試試能不能用數學式來推(用+-%..之類的) : 推不出來最後目前換成用data函數 : 1.先比對是否為同一週 (直接B-A) : 2.計算日期A距週六幾天 : 3.計算日期B距週日幾天 : 再做(相隔週數-1)*5 + (週六-A天數) + B距週日天數 : : 至於效能方面不用太擔心,這種計算不會很花時間 : : 以我的筆電,比對 10,000 次花 0.3 秒而已。 : 如果是數百筆,然後每一筆都逐日筆對的話 : 時間好像就不小了.. 試試看建表法如何? 這樣作除了六日外,也可以扣除國定假日 例如︰ 日期 原因 -- -- 2010/1/1 元旦 2010/1/2 六 2010/1/3 日 然後你要找4/5~5/8的話 只要取得 select count(日期) as 結果 from 表 where 日期>'2010/4/5' and 日期<'2010/5/8' 之後兩個日期相減在減掉查詢出來的結果即可 不過我更建議多一個欄位,紀錄工作天 每次新增 修改 就順便更新該值 -- 以上的缺點是要定期維護該表 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.84.186.165 ※ 編輯: arrack 來自: 219.84.186.165 (12/17 20:40) ※ 編輯: arrack 來自: 219.84.186.165 (12/17 20:41)