Sunday, September 20, 2009

Query condition on datetime type column

  • เมื่อเราเปิด Microsoft SQL Server Management Studio ขึ้นมา
  • ทำการ select หรือ insert หรือ อาไรก็ชั่งที่เกี่ยวกับ datetime
  • ตอนเริ่มต้นครั้งแรกๆ งงแน่ๆ ว่าเราจะใส่ตัวเลขยังไงระหว่าง วัน กับ เดือน
ตัวอย่าง

c1 - c2 - c3[y-m-d]
1 - a - 2009-01-02
2 - b - 2009-02-01
3 - c - 2009-01-03
4 - d - 2009-03-01
  • ถ้าเราต้องการค้นหา row ที่ c3 เป็น วันที่ 1 เดือน 2 ปี 2009 ซึ่งผลลัพธ์ต้องได้ 2 - b - 2009-02-01
select * from table1 where c3 = '1/2/2009'
  • ผลลัพของ query เราจะได้ 1 - a - 2009-01-02 ซึ่งไม่ตรงตามที่เราต้องการ
  • คือ จริงๆ แล้ว Default ของโปรแกรมจะเป็น set dateformat mdy เริ่มต้นเลย
  • แต่ถ้าเราต้องการใส่เงื่อนไขแบบเนี๋ย '1/2/2009' ให้เราบอก query มอง datetime แบบ dmy ก่อน query เราก็จะได้ 2 - b -2009-02-01
set dateformat dmy
select * from table1 where c3 = '1/2/2009'
  • ซึ่งปกติผุ้เขียนก็ไม่ค่อยใช้แบบนี้อ่ะ / แต่จะใช้ - ชัวร์กว่าเยอะเลยคือ yyyy-mm-dd ปีเดือนวัน จำง่ายดี
  • การ insert , update, delete ก็เช่นกัน

No comments:

Post a Comment