กระทู้เก่าบอร์ด อ.Yeadram
1,371 16
URL.หัวข้อ /
URL
เลือกรายงาน ช่วงวัน เวลา
มีฟิลด์ VisitDate เก็บข้อมูลเป็น Date รูปแบบนี้ 2/9/2560 17:38:05
ผมต้องการเลือกรายงานเป็นช่วงวัน และ เวลา ผมจึงแยก
VisitDate ดังนี้ D:DateValue([VisitDate]) และ T:TimeValue([VisitDate])
จะได้รูปแบบแยกเป็น 2 ฟิลด์ดังนี้ D = 2/9/2560 T = 17:38:05
คำถามคือ ผมใส่เงื่อนไข Between ของวันที่ในรูปแบบที่เคยใส่ คือ
Between #1/9/2560# and #30/9/2560# มัน Error Data Type mismatch
มันต้องใส่เงื่อนไขเป็นแบบไหนครับ ทั้งวันที่ และเวลา
ขอบพระคุณครับ
ผมต้องการเลือกรายงานเป็นช่วงวัน และ เวลา ผมจึงแยก
VisitDate ดังนี้ D:DateValue([VisitDate]) และ T:TimeValue([VisitDate])
จะได้รูปแบบแยกเป็น 2 ฟิลด์ดังนี้ D = 2/9/2560 T = 17:38:05
คำถามคือ ผมใส่เงื่อนไข Between ของวันที่ในรูปแบบที่เคยใส่ คือ
Between #1/9/2560# and #30/9/2560# มัน Error Data Type mismatch
มันต้องใส่เงื่อนไขเป็นแบบไหนครับ ทั้งวันที่ และเวลา
ขอบพระคุณครับ
16 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R23967
ขอบคุณครับ อ.yeadram ไม่ได้คุยกันนานเลยครับ
แต่เรื่องเวลานี่ ผมยังไม่เคยทำเลยครับ ต้องใช้แบบไหน
แต่เรื่องเวลานี่ ผมยังไม่เคยทำเลยครับ ต้องใช้แบบไหน
3 @R23968
คือนอกจากจะเลือก วันที่เท่าไหร่ ถึงเท่าไหร่แล้ว
ยังอยากเลือกเวลาด้วย อีกเงื่อนไขนึง
เช่น 19.30 - 21.30 แต่ใส่เงื่อไขไม่ถูก
ยังอยากเลือกเวลาด้วย อีกเงื่อนไขนึง
เช่น 19.30 - 21.30 แต่ใส่เงื่อไขไม่ถูก
4 @R23969
ผมเลิกใช้รูปแบบ Between #date# and #date# ไปนานแล้วครับ เพราะมีปัญหาเรื่องการตั้งค่าวันที่ของคอมพ์แต่ละเครื่อง
เปลี่ยนไปใช้รูปแบบนี้แทนครับ
Between CDbl(date1) and CDbl(date2)
ส่วนเรื่องเวลาก็ใช้
Between CDbl(TimeValue(date)) and CDbl(TimeValue(date2))
เปลี่ยนไปใช้รูปแบบนี้แทนครับ
Between CDbl(date1) and CDbl(date2)
ส่วนเรื่องเวลาก็ใช้
Between CDbl(TimeValue(date)) and CDbl(TimeValue(date2))
5 @R23972
อ.pizz_p ครับ
ฟังชันนี้ Between CDbl(TimeValue(date)) and CDbl(TimeValue(date2))
ผมต้องการ ใส่เงื่อนไขเวลา 19.30 - 21.30 น
ผมจะใช้ยังงัยครับ ผมลองหลายอย่างแล้ว ไม่ได้เลยครับ
ฟังชันนี้ Between CDbl(TimeValue(date)) and CDbl(TimeValue(date2))
ผมต้องการ ใส่เงื่อนไขเวลา 19.30 - 21.30 น
ผมจะใช้ยังงัยครับ ผมลองหลายอย่างแล้ว ไม่ได้เลยครับ
6 @R23975
่ไม่จำเป็นต้องแยกฟิลด์วันกับเวลาเลย ตย.เงิ่อนไขให้ใส่ between #12/jan/2017 19:30# and #12/jan/2017 21:30#
7 @R23976
ลองอ่านในคำถามนี้เพิ่มเติม จะช่วยให้เข้าใจได้มากขึ้นครับ
http://thai-access.com/yeadram_view.php?topic_id=2294&page=1
http://thai-access.com/yeadram_view.php?topic_id=2294&page=1
8 @R23979
เรียน อ.สันติสุขครับ ก่อนโพส ผมลองค้นหาในเวปนี้ หายกระทู้เลยครับ
มีแต่พูดถึง วันที่ ซึ่งจริงๆ ความต้องการของผม คือ เวลาครับ
กระทูที่ อ. ให้ผมอ่าน ก็อ่านแล้วครับ มันยังไม่ตรงใจ
คือ ผมอยากรู้ผลงานโอทีครับ ในวัน เวลาที่กำหนด
แต่ใส่ ฟังก์ชัน หรือ เงื่อนไขไม่ถูกครับ เพราะไม่เคยมช้เลยครับ
มีแต่พูดถึง วันที่ ซึ่งจริงๆ ความต้องการของผม คือ เวลาครับ
กระทูที่ อ. ให้ผมอ่าน ก็อ่านแล้วครับ มันยังไม่ตรงใจ
คือ ผมอยากรู้ผลงานโอทีครับ ในวัน เวลาที่กำหนด
แต่ใส่ ฟังก์ชัน หรือ เงื่อนไขไม่ถูกครับ เพราะไม่เคยมช้เลยครับ
9 @R23980
ออกแบบให้ป้อนวันที่จากไหน ถ้าป้อนบนฟอร์ม เวลาป้อนก็ป้อน วัน/ชื่อเดือน/ปี ชม.:นาที แล้วเอาค่าที่ป้อนไปใช่ที่ไหน ในโค้ดหรือคิวรี่หรือยังไง
10 @R23982
ใช้รูปแบบนี้
TimeValue(dateField) Between #19:30:00# And #21:30:00#
รูปแบบเวลาให้ใช้ : (colon) เป็นตัวคั่นระหว่าง ชม.:นาที:วินาที
TimeValue(dateField) Between #19:30:00# And #21:30:00#
รูปแบบเวลาให้ใช้ : (colon) เป็นตัวคั่นระหว่าง ชม.:นาที:วินาที
11 @R23986
ตอบ อ.สันติสุข
ป้อนจากฟอร์ม ได้ข้อมูลมาในรูป 2/9/2560 17:38:05 แล้ว หลายๆ เรคคอร์ด
เอามาทำ Query หาเวลาโอที คือ 19.30 - 21.30 น และเลือกช่วงวันได้อีกเงื่อนไขครับ
อ.pizza_p
Error Type mismath เหมือนข้างบนครับ
เบื้องต้นช่วงรอ อ.มาตอบว่าที่ถูกควรทำแบบไหน ผมลองทำแบบนี้ครับ
ใช้ Hour([visitdate]) แล้วใส่เงื่อนไข >18 And "U"
ผมก็จะได้ช่วงเวลา 19.30-21.30 น. แต่ไม่รู้ว่ามันถูกต้องหรือป่าว
ในความรู้สึกผมคิดว่ามันน่าจะมีฟังก์ชั่นให้ใช้อะครับ แต่เลือกเวลา ซึ่งมันใช้บ่อย
ป้อนจากฟอร์ม ได้ข้อมูลมาในรูป 2/9/2560 17:38:05 แล้ว หลายๆ เรคคอร์ด
เอามาทำ Query หาเวลาโอที คือ 19.30 - 21.30 น และเลือกช่วงวันได้อีกเงื่อนไขครับ
อ.pizza_p
Error Type mismath เหมือนข้างบนครับ
เบื้องต้นช่วงรอ อ.มาตอบว่าที่ถูกควรทำแบบไหน ผมลองทำแบบนี้ครับ
ใช้ Hour([visitdate]) แล้วใส่เงื่อนไข >18 And "U"
ผมก็จะได้ช่วงเวลา 19.30-21.30 น. แต่ไม่รู้ว่ามันถูกต้องหรือป่าว
ในความรู้สึกผมคิดว่ามันน่าจะมีฟังก์ชั่นให้ใช้อะครับ แต่เลือกเวลา ซึ่งมันใช้บ่อย
12 @R23990
แก้ไขครับข้อความขาดหาย
ผมใช้ H : Hour([visitdate]) แล้วใส่เงื่อนไข >18 And "U"
ผมก็จะได้ช่วงเวลา 19.30-21.30 น.
ผมใช้ H : Hour([visitdate]) แล้วใส่เงื่อนไข >18 And "U"
ผมก็จะได้ช่วงเวลา 19.30-21.30 น.
13 @R23991
ทำดูแล้ว ผ่านหมด
ลองดูรูปแบบเวลาในเครื่องครับ ถ้ามันเป็น 7:30:00 PM ก็ต้องใส่ตาม format ที่อยู่ในเครื่องครับ


ลองดูรูปแบบเวลาในเครื่องครับ ถ้ามันเป็น 7:30:00 PM ก็ต้องใส่ตาม format ที่อยู่ในเครื่องครับ
14 @R24043
เขตข้อมูลผมใช้ Date/time
Windows 10 ชนิดวันที่ ไทย
Access2016
ลองแล้วไม่ได้ครับอาจารย์
Windows 10 ชนิดวันที่ ไทย
Access2016

ลองแล้วไม่ได้ครับอาจารย์
15 @R24048
field visitdate มี record ที่มีค่าเป็น Null ครับ วิธีแก้คือใช้ Nz() เพื่อไม่ให้ field นี้มีค่าเป็น Null ครับ
เช่น
T: TimeValue(Nz([visitdate],#1/1/2560#))
หรือ
T: TimeValue(Nz([visitdate],Date()))
ปล. วันที่ใน Nz([visitdate],#1/1/2560#) จะตั้งให้เป็นอะไรก็ได้ที่ไม่ได้อยู่ในช่วงที่เราต้องการ
เช่น
T: TimeValue(Nz([visitdate],#1/1/2560#))
หรือ
T: TimeValue(Nz([visitdate],Date()))
ปล. วันที่ใน Nz([visitdate],#1/1/2560#) จะตั้งให้เป็นอะไรก็ได้ที่ไม่ได้อยู่ในช่วงที่เราต้องการ
16 @R24058
555 โอเคเลยครับ ได้ความรู้ใหม่
ขอบพระคุณ อ.pizza_p ด้วยครับ
ขอบพระคุณ อ.pizza_p ด้วยครับ
Time: 0.5832s
D: cDate(format("dd/mm/yyyy"))
Between #1/09/2560# and #30/9/2560# หรือ
Between #9/1/2560# and #9/30/2560# (รูปแบบที่จะได้ผลขึ้นอยู่กับ system ของเครื่องที่รัน)
ส่วนฟังก์ชั่น DateValue() เท่าที่ทราบ มันไม่ได้คืนค่ามาเป็น Date นะครับ ที่คุณมองเห็นมันแสดงผลเป็น Date นั่นแค่การปรับอัตโนมัติ ของส่วนแสดงผลเท่านั้น ค่าที่แท้จริงของมัน (ในส่วนที่เก็บอยู่ในแรม หรือส่วนกำลังประมวลผล) ไม่ใช่ Date นะครับ (น่าจะเป็น Integer นะ) เอา #..# ไปเป็นเงื่อนไขไม่ได้ครับ
....................
ถ้าไม่อยากสับสนยาวๆ ในภายหลัง ไม่ว่าจะใช้เครื่องไหนๆ ตั้ง system date เป็นรูปแบบ เดือนก่อนวัน หรือวันก่อนเดือน (dd/mm/yyyy หรือ mm/dd/yyyy)
โจทก์ของคุณ อาจระบุให้ละเอียด ป้องกันปัญหาไปเลยก็ดีนะครับ
D: format("mm/yyyy")
where D Like '09/2560'