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

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

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

ดูแล้ว 44,106 ครั้ง


การกำหนดประเภทของ 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
 

1
SELECT * FROM test_date WHERE date_time like '2009%'

 

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

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

 

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

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

 

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

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

 

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

1
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

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


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

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


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

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


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







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









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










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