SQL ฟังก์ชัน Date

  • หน้าก่อนหน้า SQL View
  • หน้าต่อไป SQL Nulls

วันที่ SQL

เมื่อเราจัดการวันที่ งานที่ยากที่สุดคงเป็นการให้ความเหมาะสมกับรูปแบบวันที่ของข้อมูลที่เข้าถึงกับคอลัมน์วันที่ในฐานข้อมูล

เมื่อข้อมูลที่มีเป็นแค่ส่วนวัน การปฏิบัติการค้นหาจะไม่มีปัญหา แต่หากมีเวลาเกี่ยวข้อง สถานการณ์ก็จะมีความซับซ้อนขึ้น

ก่อนที่จะอธิบายความซับซ้อนของการค้นหาวันที่ ขอเรียกร้องให้เรามองไปที่ฟังก์ชันการจัดการวันที่ที่สำคัญที่สุดในต้นตอนนี้。

ฟังก์ชันวันที่ MySQL

ตารางด้านล่างระบุฟังก์ชันวันที่ที่สำคัญที่สุดใน MySQL:

ฟังก์ชัน คำอธิบาย
NOW() คำสั่ง RETURN วันที่และเวลาปัจจุบัน
CURDATE() คำสั่ง RETURN วันที่ปัจจุบัน
CURTIME() คำสั่ง RETURN ระยะเวลาปัจจุบัน
DATE() ดึงส่วนวันของวันที่หรือวันที่/เวลา
EXTRACT() คำสั่ง RETURN ส่วนต่างๆ ของวันที่/เวลาตามปริมาณ
DATE_ADD() เพิ่มช่วงเวลาที่กำหนดในวันที่
DATE_SUB() ลบช่วงเวลาที่กำหนดจากวันที่
DATEDIFF() คำสั่ง RETURN จำนวนวันระหว่างวันที่สองตัว
DATE_FORMAT() แสดงวันที่/เวลาในรูปแบบต่างๆ

ฟังก์ชันวันที่ SQL Server

ตารางด้านล่างระบุฟังก์ชันวันที่ที่สำคัญที่สุดใน SQL Server:

ฟังก์ชัน คำอธิบาย
GETDATE() คำสั่ง RETURN วันที่และเวลาปัจจุบัน
DATEPART() คำสั่ง RETURN ส่วนต่างๆ ของวันที่/เวลา
DATEADD() เพิ่มหรือลบช่วงเวลาที่กำหนดในวันที่
DATEDIFF() คำสั่ง RETURN ระหว่างวันที่สองตัว
CONVERT() แสดงวันที่/เวลาในรูปแบบต่างๆ

ประเภทข้อมูล SQL Date

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

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

SQL Server ใช้ประเภทข้อมูลดังนี้เพื่อเก็บข้อมูลวันที่ หรือ วันที่/เวลาในฐานข้อมูล

  • DATE - รูปแบบ YYYY-MM-DD
  • DATETIME - รูปแบบ: YYYY-MM-DD HH:MM:SS
  • SMALLDATETIME - รูปแบบ: YYYY-MM-DD HH:MM:SS
  • TIMESTAMP - รูปแบบ: ตัวเลขเดียว

การจัดการวันที่ SQL

หากไม่มีส่วนเวลา การเปรียบเทียบวันที่จะง่ายต่อการทำงาน!

ตอนนี้เรามีตาราง "Orders" ดังนี้:

OrderId ProductName OrderDate
1 computer 2008-12-26
2 printer 2008-12-26
3 electrograph 2008-11-12
4 telephone 2008-10-19

ตอนนี้ เราต้องการเลือกบันทึกที่ OrderDate คือ "2008-12-26" จากตารางที่ก่อนหน้านี้

เราใช้คำสั่ง SELECT ดังนี้:

SELECT * FROM Orders WHERE OrderDate='2008-12-26'

ผลลัพธ์ตาราง:

OrderId ProductName OrderDate
1 computer 2008-12-26
3 electrograph 2008-12-26

ตอนนี้เราจะอนุญาติให้ "Orders" คล้ายนี้ (โปรดจำได้ว่าส่วนเวลาในคอลัมน์ "OrderDate")

OrderId ProductName OrderDate
1 computer 2008-12-26 16:23:55
2 printer 2008-12-26 10:45:26
3 electrograph 2008-11-12 14:12:08
4 telephone 2008-10-19 12:56:10

หากเราใช้คำสั่ง SELECT ดังนี้:

SELECT * FROM Orders WHERE OrderDate='2008-12-26'

เราจึงไม่ได้ผลลัพธ์ นี่เป็นเพราะคำสั่งค้นหาไม่มีส่วนเวลาในวันที่

คำเตือน:หากคุณต้องการที่จะทำให้คำสั่งค้นหาง่ายและง่ายต่อการดูแล โปรดไม่ใช้ส่วนเวลาในวันที่!

  • หน้าก่อนหน้า SQL View
  • หน้าต่อไป SQL Nulls