ต้องการแปลงตัวเลขให้เป็นเวลาทำอย่างคะ
กระทู้เก่าบอร์ด อ.Yeadram

 3,046   5
URL.หัวข้อ / URL
ต้องการแปลงตัวเลขให้เป็นเวลาทำอย่างคะ

ดิฉันมี database ที่เก็บเวลา เมื่อมีผู้มารับบริการชึ่งจริงๆแล้วต้องการให้รับในวันนั้น

        Date =วันที่จะมารับ Time =เวลาจะมารับบริการ
        SerDate =วันที่มารับ sertime =เวลาที่มารับบริการ

เมื่อคิดเวลารอคอย ดิฉันจะนำ Field Date-Field SerDate , Field sertime-Field Time ก็จะเป็นวันที่และเวลาที่รอรับบริการ

   ปัญหาเป็นอย่างนี้คะ หากผู้มารับบริการจองไว้แต่มารับบริการต่างวัน
ทำให้ Field sertime-Field Time บางครั้งมีค่ามี่เป็นลบ ไม่ทราบจะแก้ปัญหาอย่างไรดีคะ เคยพยายามเอา Field Date-Field SerDate ซึ่งเป็นตัวเลขเต็ม แปลงเป็นเวลา มันจะเป็น 00:00:00 ทั้งหมด ไม่สามารถที่จ+/-กับField sertime-Field Time ได้คะ

          ขอบพระคุณคะ

5 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R11425
ขอโทษคะ
T1= SerDate-Date และ T2= Sertime -Time( บางครั้งค่าที่แสดงออกเป็นลบแต่จะไม่มีเครื่องหมาย - ให้เห็น)หลังจากนั้นจะนำค่าทั้ง2 รวมกันเพื่อได้ค่าที่แท้จริง T1+T2 แต่ทำไม่ได้คะ

ดิฉันพยายามใช้ datediff("h",SerDate,Date )ออกมาเป็น ชม.แล้ว &:00&:00 มันก็ได้ค่าเป็น 48:00:00 แต่เมื่อมา +t2 (เข่น19:05:00)มันจะขึ้น error
2 @R11427
ให้เก็บลง field เดียวกันครับ
DateTime = วัน เวลาที่จะมีรับบริการ
SerDateTime = วัน เวลาที่มารับริการ

datediff("h",SerDateTime,DateTime )
3 @R11428
ขอบคุณคะ PichaiTC แต่ทำไม่ได้คะ เนื่องจากเป็น file สำเร็จรูปที่ดิฉันต้องนำมาคิด เพราะบางครั้งผู้มารับบริการห่างเป็น 7-8 วันคะ
แต่ส่วนใหญ่มาในวันที่นัดให้บริการ

ตัวอย่าง    SerDate 14/10/2011 sertime 9:15:35
                      Date 12/10/2001 Time   10:15:55
datediff("d",SerDate,Date )=2 และ Sertime-Time=1:00:20(เวลาเป็นค่าลบ)

จริงๆแล้วต้องเป็นเวลา 2 วันกับ 1:00:20 ชม.
                         ดิฉันจึงใช้สูตรนึ้คะ

T1:datediff("s",SerDate,Date )
T2:datediff("s",Sertime ,Time)
แล้ว t1+t2

มันจะเป็นวินาที   แต่ดิฉันไม่สามารถที่จะทำให้มันกลับเป็นค่า
d,hh:nn:ssได้คะ ขอบพระคุณคะ
4 @R11429
1. ให้ดีคือรวมตั้งแต่ที่ table ถ้าไม่ได้ก็รวมที่ code ครับ
AppointDateTime = [Date] + [Time]
ServiceDateTime = [SerDate] + [SerTime]

2. แล้วลบกันได้ตรงๆเลย จะได้ค่า เวลาต่าง
Delay = ServiceDateTime - AppointDateTime

3. ค่าของวันที่ คือค่า integer ของ datetime
DelayDay = Int(Delay)

4. ค่าของเวลา คือค่า หลังจุดทศนิยม ของ datetime ซึ่งถ้าต้องการแสดงแบบ hh:nn:ss อยู่แล้ว ไม่ต้องทำอะไร แค่กำหนด format หรือ วางใน textbox ที่เป็น format ดังกล่าว
DelayTime = Format(Delay, "hh:nn:ss")
5 @R11431
ได้แล้วคะ ขอบคุณคะ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3289s