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

คิวรี่ MySQL เพื่อดึงข้อมูลผู้ใช้ที่ล็อกอินวันนี้

การค้นหาผู้ใช้ที่ล็อกอินในวันปัจจุบัน

เมื่อต้องการดึงข้อมูลผู้ใช้ที่มีการล็อกอินในวันนี้ โดยที่ฟิลด์วันที่เก็บเป็นประเภท String (VARCHAR/TEXT) สามารถใช้ฟังก์ชัน STR_TO_DATE() แปลงสตริงเป็นวันที่ แล้วเปรียบเทียบกับ CURDATE() ซึ่งจะคืนค่าวันที่ปัจจุบันโดยไม่รวมเวลา

รูปแบบคำสั่ง (Syntax)

SELECT yourColumnName1, yourColumnName2, ... 
FROM yourTableName 
WHERE STR_TO_DATE(yourDateColumn, 'date_format') = CURDATE();

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

สมมติมีตาราง DateEqualToday เก็บข้อมูลชื่อ-นามสกุลและวันที่ล็อกอิน:

CREATE TABLE DateEqualToday (
    Id INT,
    First_Name VARCHAR(100),
    Last_Name VARCHAR(100),
    LoginDate VARCHAR(20)
);

ข้อมูลตัวอย่าง:

IdFirst_NameLast_NameLoginDate
1JamesSmith20-12-2018
2CarolTaylor21-12-2017
3JohnSmith21-12-2018
4MariaGarcia22-12-2018
5MikeDavis21-12-2018
6BobWilson21-12-2018

คำสั่งค้นหาผู้ใช้ที่ล็อกอินวันนี้ (สมมติวันนี้คือ 21-12-2018):

SELECT Id, First_Name, LoginDate 
FROM DateEqualToday 
WHERE STR_TO_DATE(LoginDate, '%d-%m-%Y') = CURDATE();

ผลลัพธ์:

IdFirst_NameLoginDate
3John21-12-2018
5Mike21-12-2018
6Bob21-12-2018

คำอธิบาย: ฟังก์ชัน STR_TO_DATE(LoginDate, '%d-%m-%Y') จะแปลงสตริงวันที่ในรูปแบบ DD-MM-YYYY ให้เป็นค่าประเภท DATE แล้วเปรียบเทียบกับ CURDATE() ที่คืนค่าวันที่ปัจจุบันของเซิร์ฟเวอร์