เทคนิคการ query วันที่
กระทู้เก่าบอร์ด อ.Yeadram

 3,932   3
URL.หัวข้อ / URL
เทคนิคการ query วันที่

ใครพอมีเทคนิคในการ query วันที่บ้างครับ
ไม่รู้ใครเจอปัญหาเหมือนผมไหม เวลาที่ query วันที่แล้วไม่ได้ผลตามที่ต้องการ
อย่างเช่น เราต้องการ query วันที่ 1 เดือน 3 ปี 2008
ก็ใส่ไป EffDate = #1/3/2008#
ผลออกมากลายเป็น วันที่ 3 เดือน 1 ปี 2008
ก็พอเข้าใจว่าการ set วันที่ ฝรั่งไทย มันม่ายเหมือนกาน

หากผมใช้ของผมเครื่องเดียวคงไม่มีปัญหา แต่หากเอาไอ้เจ้าโปรแกรมตัวนี้ไปใช้หลายเครื่อง มันจะชอบสลับไปสลับมาวุ่นวายไปหมด

ใครพอมีทิปดีๆให้ใช้บ้างใหมครับ

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

1 @R00174
เรื่องนี้มีคนงงๆอยู่หลายคนครับ ในข้อกำหนดของ Jet SQL Statement ต้องเป็นรูปแบบ #เดือน/วัน/ปีค.ศ.# เท่านั้น โดยไม่ขึ้นกับว่าเครื่องคุณจะกำหนดรูปแบบของวันที่เป็นอย่างไรนะครับ เช่น select ..... where .... = #1/9/2008# คือวันที่ 9-Jan-2008 เสมอ

แต่ต้องเป็นการเขียนเพื่อสร้างคำสั่ง SQL หรือสร้างใน SQL Design View เท่านั้นครับ ไม่ใช่ทำผ่าน Query Design View ครับ เพราะ Query Design View จะเข้าใจรูปแบบของวันที่ตามที่กำหนดใน Control Panel > Regional and Language Option ซึ่งแตกต่างกันไปแต่ละเครื่องได้

อีกอย่างหนึ่งที่อาจทำได้ก็คือ การป้อนวันที่ในรูปแบบชื่อเดือนแทนเลขเดือน เช่น #1-Mar-2008# เพราะแน่นอนว่ามันเป็นวันที่ 1 เดือน 3 แน่นอน

2 @R00175
ถ้าเป็นการเขียนวันที่แบบ SQL จะเป็นรูปแบบนี้เสมอใช่ใหมครับ... #เดือน/วัน/ปีค.ศ.#
ขอบคุณมากครับ

หมายเหตุ: ตอนแรกผมก็จะใช้วิธีนี้แหละครับ #1-Mar-2008#
แต่พอดีผมใช้สูตร   Format([GetDate],"DD-MMM-YYYY")
แล้วมันออกมาเป็นเดือนไทย พอผมเอาไปเข้ากับ ## เพื่อใส่ไปใน SQL มันเลยงงนะครับ
3 @R00176
ผมเก็บแบบ #1-Mar-2008# ครับ
ส่วนการ QUERY กระทำผ่าน FORM
รับค่าจาก TEXBOX1(วัน), TEXBOX2(เดือน),TEXTBOX3(ปี)
รับมาเป็นตัวเลข แล้วใช้ DATESERAIL(TEXTBOX1,TEXTBOX2,TEXTBOX3)
แล้วอ้าง QUERY ให้เท่ากับ DATESERAIL ดังกล่าว
แบบนี้ รับรองไม่มีสลับแน่ครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.5108s