ล่าสุดการพัฒนาเว็บบทเรียน
 

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


วันที่ SQL

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


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

ตารางต่อไปนี้แสดงในตัวฟังก์ชั่นวันที่สำคัญที่สุดใน MySQL:

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

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

ตารางต่อไปนี้แสดงในตัวฟังก์ชั่นวันที่สำคัญที่สุดใน SQL Server:

ฟังก์ชัน ลักษณะ
GETDATE() ส่งกลับวันและเวลาปัจจุบัน
DATEPART() ผลตอบแทนที่ได้เป็นส่วนหนึ่งของวันที่ / เวลา
DATEADD() เพิ่มหรือลบระยะเวลาที่กำหนดจากวันที่
DATEDIFF() ส่งกลับเวลาระหว่างวันที่สองวัน
CONVERT() วันที่แสดงข้อมูล / เวลาในรูปแบบที่แตกต่างกัน

ชนิดข้อมูล SQL วัน

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

  • วัน - รูปแบบ YYYY-MM-DD
  • DATETIME - รูปแบบ: YYYY-MM-DD HH: MI: เอสเอส
  • ลงเวลา - รูปแบบ: YYYY-MM-DD HH: MI: เอสเอส
  • ปี - ปปปปปปหรือรูปแบบ

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

  • วัน - รูปแบบ YYYY-MM-DD
  • DATETIME - รูปแบบ: YYYY-MM-DD HH: MI: เอสเอส
  • SMALLDATETIME - รูปแบบ: YYYY-MM-DD HH: MI: เอสเอส
  • ลงเวลา - รูปแบบ: จำนวนที่ไม่ซ้ำกัน

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

สำหรับภาพรวมของทุกประเภทข้อมูลที่มีอยู่ให้ไปที่สมบูรณ์ของเรา อ้างอิงชนิดข้อมูล


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

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

สมมติเรามีดังต่อไปนี้ "Orders" ตาราง:

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

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

OrderId ProductName OrderDate
1 Geitost 2008-11-11 13:23:44
2 Camembert Pierrot 2008/11/09 15:45:21
3 mozzarella di จิโอวานนี่ 2008/11/11 11:12:01
4 mascarpone Fabioli 2008-10-29 14:56:59

ถ้าเราใช้คำสั่ง SELECT เดียวกับข้างต้น:

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

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

Tip: หากคุณต้องการที่จะให้คำสั่งของคุณง่ายและง่ายต่อการรักษาไม่อนุญาตให้ส่วนประกอบเวลาในวันที่ที่คุณ!