กวดวิชาSQL

SQL HOME บทนำ SQL ไวยากรณ์ SQL SQL Select SQL Select Distinct SQL ที่ไหน SQL และหรือไม่ใช่ คำสั่ง SQL โดย SQL แทรกลงใน ค่าว่างของ SQL SQL Update SQL Delete SQL Select Top SQL Min และ Max SQL Count, Avg, Sum SQL Like SQL Wildcards SQL ใน SQL ระหว่าง นามแฝงของ SQL การรวม SQL SQL Inner Join SQL เข้าร่วมด้านซ้าย SQL Right Join SQL เข้าร่วมแบบเต็ม เข้าร่วมด้วยตนเองของ SQL SQL Union กลุ่ม SQL โดย SQL มี SQL Exists SQL ใด ๆ ทั้งหมด SQL Select Into แทรก SQL ลงใน Select กรณี SQL ฟังก์ชัน SQL Null กระบวนงานที่เก็บไว้ของ SQL ข้อคิดเห็นของ SQL ตัวดำเนินการ SQL

ฐานข้อมูลSQL

SQL สร้าง DB SQL Drop DB ฐานข้อมูลสำรองของ SQL SQL สร้างตาราง SQL Drop Table SQL Alter Table ข้อจำกัดของ SQL SQL ไม่ใช่ Null SQL Unique คีย์หลักของ SQL คีย์ต่างประเทศของ SQL SQL Check SQL Default ดัชนี SQL SQL Auto Increment SQL Dates มุมมอง SQL การฉีด SQL SQL Hosting ประเภทข้อมูล SQL

การอ้างอิงSQL

คีย์เวิร์ด SQL ฟังก์ชัน MySQL ฟังก์ชันเซิร์ฟเวอร์ SQL ฟังก์ชัน MS Access SQL Quick Ref

ตัวอย่างSQL

ตัวอย่าง SQL แบบทดสอบ SQL แบบฝึกหัด SQL ใบรับรอง SQL

SQL ทำงานกับวันที่


SQL Dates

ส่วนที่ยากที่สุดในการทำงานกับวันที่คือต้องแน่ใจว่ารูปแบบของวันที่ที่คุณพยายามแทรกนั้นตรงกับรูปแบบของคอลัมน์วันที่ในฐานข้อมูล

ตราบใดที่ข้อมูลของคุณมีเพียงส่วนวันที่ การสืบค้นของคุณจะทำงานตามที่คาดไว้ อย่างไรก็ตาม หากมีส่วนของเวลา มันก็จะซับซ้อนมากขึ้น


ประเภทข้อมูลวันที่ของ SQL

MySQLมาพร้อมกับประเภทข้อมูลต่อไปนี้สำหรับการจัดเก็บวันที่หรือค่าวันที่/เวลาในฐานข้อมูล:

  • DATE - รูปแบบ YYYY-MM-DD
  • DATETIME - รูปแบบ: ปปปป-ดด-วว HH:MI:SS
  • TIMESTAMP - รูปแบบ: ปปปป-ดด-วว HH:MI:SS
  • YEAR - รูปแบบ YYYY หรือ YY

SQL Serverมาพร้อมกับชนิดข้อมูลต่อไปนี้สำหรับการจัดเก็บวันที่หรือค่าวันที่/เวลาในฐานข้อมูล:

  • DATE - รูปแบบ YYYY-MM-DD
  • DATETIME - รูปแบบ: ปปปป-ดด-วว HH:MI:SS
  • SMALLDATETIME - รูปแบบ: ปปปป-ดด-วว HH:MI:SS
  • TIMESTAMP- รูปแบบ: หมายเลขเฉพาะ

หมายเหตุ:ประเภทวันที่จะถูกเลือกสำหรับคอลัมน์เมื่อคุณสร้างตารางใหม่ในฐานข้อมูลของคุณ!


SQL ทำงานกับวันที่

ดูตารางต่อไปนี้:

ตารางการสั่งซื้อ

OrderId ProductName OrderDate
1 Geitost 2008-11-11
2 Camembert Pierrot 2008-11-09
3 Mozzarella di Giovanni 2008-11-11
4 Mascarpone Fabioli 2008-10-29

ตอนนี้ เราต้องการเลือกระเบียนที่มี OrderDate เป็น "2008-11-11" จากตารางด้านบน

เราใช้SELECTคำสั่งต่อไปนี้:

SELECT * FROM Orders WHERE OrderDate='2008-11-11'

ชุดผลลัพธ์จะมีลักษณะดังนี้:

OrderId ProductName OrderDate
1 Geitost 2008-11-11
3 Mozzarella di Giovanni 2008-11-11

หมายเหตุ:สามารถเปรียบเทียบวันที่สองวันได้อย่างง่ายดายหากไม่มีองค์ประกอบของเวลา!

ตอนนี้ สมมติว่าตาราง "คำสั่งซื้อ" มีลักษณะดังนี้ (สังเกตองค์ประกอบเวลาที่เพิ่มในคอลัมน์ "OrderDate"):

OrderId ProductName OrderDate
1 Geitost 2008-11-11 13:23:44
2 Camembert Pierrot 2008-11-09 15:45:21
3 Mozzarella di Giovanni 2008-11-11 11:12:01
4 Mascarpone Fabioli 2008-10-29 14:56:59

หากเราใช้ข้อความเดียวกันSELECTกับข้างต้น:

SELECT * FROM Orders WHERE OrderDate='2008-11-11'

เราจะไม่ได้ผล! เนื่องจากแบบสอบถามกำลังค้นหาเฉพาะวันที่ที่ไม่มีส่วนของเวลา

เคล็ดลับ:เพื่อให้คำค้นหาของคุณเรียบง่ายและดูแลรักษาง่าย อย่าใช้องค์ประกอบเวลาในวันที่ของคุณ เว้นแต่คุณจะต้องทำ!