Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ดึงวันที่วันนี้ในรูปแบบ YYYY-MM-DD ใน MySQL ด้วย CURDATE()

เพื่อดึงวันที่ปัจจุบัน (Current Date) ในรูปแบบ YYYY-MM-DD ใน MySQL ให้ใช้ฟังก์ชัน CURDATE() หรือ CURRENT_DATE() ซึ่งคืนค่าเป็นชนิด DATE

คำสั่ง CURDATE()

mysql> SELECT CURDATE();

ผลลัพธ์

+------------+
| CURDATE()  |
+------------+
| 2019-04-09 |
+------------+

คำสั่ง DATE(NOW()) - ทางเลือก

mysql> SELECT DATE(NOW());

ผลลัพธ์

+-------------+
| DATE(NOW()) |
+-------------+
| 2019-04-09  |
+-------------+

ฟังก์ชันวันที่/เวลาหลัก

ความแตกต่าง NOW() vs SYSDATE()

  • NOW() - คืนค่าเวลาเดียวกันตลอด Statement (Statement-level)
  • SYSDATE() - คืนค่าเวลาจริงตอน Execute (Real-time) อาจต่างกันใน Statement ยาว
  • Replication: NOW() ปลอดภัยกว่า (Deterministic)

การใช้งานกับ WHERE Clause

-- วันนี้
WHERE date_col = CURDATE()

-- 7 วันที่ผ่านมา
WHERE date_col >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)

-- เดือนนี้
WHERE date_col >= DATE_FORMAT(CURDATE(), '%Y-%m-01')
  AND date_col < DATE_FORMAT(CURDATE() + INTERVAL 1 MONTH, '%Y-%m-01')

Timezone

  • ค่า Date/Time ขึ้นกับ time_zone ของ Session
  • ตรวจสอบ: SELECT @@time_zone, CURDATE(), UTC_DATE();
  • Thailand: SET time_zone = '+07:00';
Functionคืนค่าชนิดข้อมูลตัวอย่าง
CURDATE() / CURRENT_DATE()วันที่วันนี้DATE2024-12-31
CURTIME() / CURRENT_TIME()เวลาตอนนี้TIME15:30:45
NOW() / CURRENT_TIMESTAMP()วันที่และเวลาตอนนี้DATETIME2024-12-31 15:30:45
UTC_DATE()วันที่ UTCDATE2024-12-31
UTC_TIME()เวลา UTCTIME08:30:45
UTC_TIMESTAMP()Datetime UTCDATETIME2024-12-31 08:30:45