Tuesday, June 16, 2009

SQL Select yesterday, tomorrow date

SELECT DATE_SUB(depart_time, INTERVAL 2 DAY), DATE_SUB(depart_time, INTERVAL 1 DAY), depart_time
-----------------------------------------------------------------------------------
SELECT * FROM events WHERE eventDateTime <= DATEADD(day, 45, GetDate())  or, indeed,  SELECT * FROM events WHERE DATEDIFF(day, eventDateTime, GetDate()) <= 45  (or maybe swap "eventDateTime" and "GetDate()" in that last one... I can never remember that).  
  • query ด้านบนเป็นของ MySQL นะ ใน MSSQL ไม่มี date_sub() หว่า
  • MSSQL เราสามารถใช้ dateadd(day, -n, getDate()) ซึ่ง n คือ ตัวเลขจะย้อนจากปัจจุบันไปกี่วัน
  • ซึ่งที่ใช้ประจำคือ ใช้ dateadd() เพิ่มวันเท่านั้น ก็พึ่งรู้วันนี้อ่ะ ว่าใส่เป็นค่าลบจะย้อนวันได้ ^^'

ตัวอย่าง

ต้องการ select วันที่ ย้อนหลังไป 90 วัน จะเป็นวันที่เท่าไหร่

select dateAdd(day, -90, getDate())
select dateAdd(d, -90, getDate())


ต้องการ select ย้อนหลังจากวันนี้ไป 3 เดือน

select dateAdd(month, -3, getDate())
select dateAdd(m, -3, getDate())


ต้องการ select ย้อนหลังจากวันนี้ไป 1 ปี

select dateAdd(year, -1, getDate())
select dateAdd(y, -1, getDate())


ข้อมูลเพิ่มเติม

No comments:

Post a Comment

Popular Posts