 |
|
ถามผู้รู้เกี่ยวกับ SQL statement จะต้องเขียนแบบไหนถึงจะทำให้ระบบทราบว่าถ้าวันที่จ่ายงานจนถึงวันที่งานแล้วเสร็จ ถ้ามีวันหยุดอยู่ในช่วงดังกล่าวให้ลบวันหยุดออกด้วย |
|
 |
|
|
 |
 |
|
แนวคิด
แบบที่ 1.
สร้าง Function ใน asp
โดยส่งค่า startdate และ enddate เข้าไป แล้วเอาค่า startdate + 1 ถ้า เป็นวัน หยุด ไม่ต้องเพิ่มค่า ให้ ตัวแปร amtDate
แต่ถ้าไม่ใช่วันหยุด amtDate = amtDate + 1
+ ไปเลยๆ จนกว่า startdate = enddate
แล้ว ส่งค่า amtDate กลับ
แบบที่ 2.
สร้าง Function ใน sql การทำงานก็คล้ายๆกับ แบบที่ 1
|
 |
 |
 |
 |
Date :
2012-01-11 11:20:58 |
By :
Thep |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
พอจะมีตัวอย่าง source code ให้ดูด้วยป่าวคะ
|
 |
 |
 |
 |
Date :
2012-01-12 10:46:01 |
By :
nukrong |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (ASP)
<%
function fncHoliday(sDate,eDate)
amt = 0
for i = cdate(sDate) to cdate(eDate)
if weekday(cdate(sDate)) <> 1 and weekday(cdate(sDate)) <> 7 then
rs.open "select top 1 * from holiday where datediff('d',holidaydate,'"&cdate(sDate)&"') = 0"
if rs.bof and rs.eof then
amt = amt +1
end if
rs.close
end if
sDate = dateadd("d",1,cdate(sDate))
next
fncHoliday = amt
end function
sDate = "2011-01-10"
eDate = "2011-01-16"
amtDate = fncHoliday(sDate,eDate)
response.write "<br>amtDate = "& amtDate
%>
ลองดูครับ
|
 |
 |
 |
 |
Date :
2012-01-14 08:59:07 |
By :
Thep |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|