การเก็บข้อมูลวันที่ ในฐานข้อมูล กับคำสั่ง sql ในการค้นหา

เขียนเมื่อ 14 ปีก่อน โดย Ninenik Narkdee
mysql ค้นหา วันที่

คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ mysql ค้นหา วันที่

ดูแล้ว 43,761 ครั้ง


การกำหนดประเภทของ field ในตารางฐานข้อมูลเป็น date หรือ datetime ทำให้เราสามารถ
จัดการข้อมูลเกี่ยวกับวันที่ได้ดังต่อไปนี้
รูปแบบข้อมูล
date = 0000-00-00 ,
ปี 4 หลัก เช่น 2010 ,2011 เป็นต้น
เดือน 2 หลัก , เช่น 01 ถึง 12
วันที่ 2 หลัก เช่น  01 ถึง 31

datetime = 0000-00-00 00:00:00
ปี 4 หลัก เช่น 2010 ,2011 เป็นต้น
ดือน 2 หลัก , เช่น 01 ถึง 12
วันที่ 2 หลัก เช่น  01 ถึง 31
ชั่วโมง 2 หลัก เช่น 00 ถึง 23
นาที 2 หลัก เช่น 00 ถึง 59
วินาที 2 หลัก เช่น 00 ถึง 59

ตัวอย่างเงื่อนไขการค้นหาข้อมูลเกี่ยวกับวันที่
ตาราง test_date
/// date_id ///     /// date_time //
1                         2009-04-13
2                         2009-12-01
3                         2010-03-01
4                         2010-03-01
5                         2010-04-12
6                         2010-04-13

1.ต้องการข้อมูลรายการในปี 2009
 

SELECT * FROM test_date WHERE date_time like '2009%'

 

2.ต้องการหาข้อมูลของเดือน เมษายน (04) ของทุกปี
 

SELECT * FROM test_date WHERE substr(date_time,6,2)='04'

 

3.ต้องการหาข้อมูลของเดือน มีนาคม (03) ปี 2010
 

SELECT * FROM test_date WHERE date_time like '2010-03%'

 

4.ต้องการหาข้อมูลช่วงตั้งแต่วันที่ 2009-12-01 ถึง 2010-03-31
 

SELECT * FROM test_date WHERE (date_time between '2009-12-01' and '2010-03-31')

 

5.ต้องการหาข้อมูลช่วงของเดือนธันวาคมปี 2009 ถึง กุมภาพันธ์ ปี 2010
 

SELECT * FROM test_date WHERE (date_time between 'date_format('2009-12-01','%Y-%m-01')' and 'date_sub(date_add(date_format('2010-02-12','%Y-%m-01'),interval 1 month),interval 1 day)')

 

 
 



   เพิ่มเติมเนื้อหา ครั้งที่ 1 วันที่ 24-08-2017


ต้องการข้อมูลรายการในปี 2009

SELECT * FROM tbl2 WHERE YEAR(date_time) ='2009'


ต้องการหาข้อมูลของเดือน เมษายน (04) ของทุกปี

SELECT * FROM tbl2 WHERE MONTH(date_time)='04'


ต้องการหาข้อมูลของเดือน มีนาคม (03) ปี 2010

SELECT * FROM tbl2 WHERE DATE_FORMAT(date_time,'%Y-%m')='2010-03'


กด Like หรือ Share เป็นกำลังใจ ให้มีบทความใหม่ๆ เรื่อยๆ น่ะครับ







เนื้อหาที่เกี่ยวข้อง









URL สำหรับอ้างอิง





คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )







เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ