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

เลือกเฉพาะวันที่จาก TIMESTAMP ใน MySQL

ใช้ฟังก์ชัน DATE() เพื่อดึงส่วนวันที่จากคอลัมน์ TIMESTAMP หรือ DATETIME

ตัวอย่างการใช้งาน

1. สร้างตารางมีคอลัมน์ TIMESTAMP

mysql> CREATE TABLE DemoTable (
    -> CustomerName VARCHAR(100),
    -> CustomerShippingDate TIMESTAMP
    -> );
mysql> INSERT INTO DemoTable VALUES 
('Chris', '2019-01-21'), ('David', '2019-03-01'), ('Robert', '2019-06-04');

2. ดึงวันที่อย่างเดียว

mysql> SELECT *, DATE(CustomerShippingDate) FROM DemoTable;

ผลลัพธ์

+--------------+----------------------+----------------------------+
| CustomerName | CustomerShippingDate | DATE(CustomerShippingDate) |
+--------------+----------------------+----------------------------+
| Chris        | 2019-01-21 00:00:00  | 2019-01-21                 |
| David        | 2019-03-01 00:00:00  | 2019-03-01                 |
| Robert       | 2019-06-04 00:00:00  | 2019-06-04                 |
+--------------+----------------------+----------------------------+

ฟังก์ชันแยกส่วนวันที่/เวลา

ฟังก์ชันคืนค่าตัวอย่าง InputOutput
DATE(dt)Date'2019-01-21 14:30:00''2019-01-21'
TIME(dt)Time'2019-01-21 14:30:00''14:30:00'
YEAR(dt)Year'2019-01-21'2019
MONTH(dt)Month'2019-01-21'1
DAY(dt)Day'2019-01-21'21
HOUR(dt)Hour'2019-01-21 14:30:00'14
MINUTE(dt)Minute'2019-01-21 14:30:00'30
SECOND(dt)Second'2019-01-21 14:30:00'0

คำแนะนำ: ใช้ DATE() ใน WHERE เพื่อประสิทธิภาพ

-- ใช้ Index ได้ (ถ้ามี Index บน CustomerShippingDate)
WHERE CustomerShippingDate >= '2019-01-01' AND CustomerShippingDate < '2019-01-22'

-- ไม่ใช้ Index ได้
WHERE DATE(CustomerShippingDate) = '2019-01-21'