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

คิวรีข้อมูลช่วงวันที่ Timestamp ใน MySQL

ใช้เงื่อนไข >= และ < สำหรับช่วงวันที่ Timestamp รูปแบบ:

SELECT * FROM yourTableName
WHERE yourDateTimeField >= 'startDate' AND yourDateTimeField < 'endDate';

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

สร้างตารางและเพิ่มข้อมูล:

mysql> CREATE TABLE DateRange (DueTime TIMESTAMP);
mysql> INSERT INTO DateRange VALUES ('2016-11-13'), ('2016-10-14'), ('2017-01-23'), ('2017-05-14'), ('2017-08-25'), ('2018-09-28'), ('2018-11-17'), ('2018-12-13'), ('2018-12-16');

คิวรีช่วง 2017-05-14 ถึง 2018-12-16

mysql> SELECT * FROM DateRange
    -> WHERE DueTime >= '2017-05-14' AND DueTime < '2018-12-17';

ผลลัพธ์ (6 เรคคอร์ด):

+---------------------+
| DueTime             |
+---------------------+
| 2017-05-14 00:00:00 |
| 2017-08-25 00:00:00 |
| 2018-09-28 00:00:00 |
| 2018-11-17 00:00:00 |
| 2018-12-13 00:00:00 |
| 2018-12-16 00:00:00 |
+---------------------+

กรณีเป็น Unix Timestamp

SELECT * FROM yourTableName
WHERE yourColumnName >= UNIX_TIMESTAMP('startDate')
  AND yourColumnName < UNIX_TIMESTAMP('endDate');

หมายเหตุ: ใช้ < สำหรับวันที่สิ้นสุด (ไม่รวมวันนั้น) เพื่อป้องกันปัญหาเวลา 00:00:00 และรองรับ Index ได้ดีกว่า BETWEEN