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

MySQL: เรียงลำดับ Timestamp แบบอัปสกอล (Ascending) โดยไม่ใช้ TIMESTAMP()

ใน MySQL คอลัมน์ชนิด TIMESTAMP (และ DATETIME) เรียงลำดับได้โดยตรงด้วย ORDER BY ไม่ต้องใช้ฟังก์ชัน TIMESTAMP() เพิ่มเติม

รูปแบบคำสั่ง

SELECT timestamp_column
FROM table_name
ORDER BY timestamp_column ASC;
  • ASC - น้อยไปมาก (เก่าสุดก่อน) - ค่าเริ่มต้น
  • DESC - มากไปน้อย (ใหม่สุดก่อน)

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

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

CREATE TABLE Timestamp_TableDemo (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    yourTimestamp TIMESTAMP
);

INSERT INTO Timestamp_TableDemo (yourTimestamp) VALUES
('2019-02-06 17:34:57'),
('2019-02-06 17:32:30'),
('2019-02-06 17:32:09');

ข้อมูลในตาราง (ลำดับที่ insert):

+----+---------------------+
| Id | yourTimestamp       |
+----+---------------------+
|  1 | 2019-02-06 17:34:57 |
|  2 | 2019-02-06 17:32:30 |
|  3 | 2019-02-06 17:32:09 |
+----+---------------------+

2. เรียงลำดับจากเก่าสุดไปใหม่สุด (ASC)

SELECT yourTimestamp
FROM Timestamp_TableDemo
ORDER BY yourTimestamp ASC;

ผลลัพธ์:

+---------------------+
| yourTimestamp       |
+---------------------+
| 2019-02-06 17:32:09 |
| 2019-02-06 17:32:30 |
| 2019-02-06 17:34:57 |
+---------------------+

3. เรียงลำดับจากใหม่สุดไปเก่าสุด (DESC)

SELECT yourTimestamp
FROM Timestamp_TableDemo
ORDER BY yourTimestamp DESC;

ผลลัพธ์:

+---------------------+
| yourTimestamp       |
+---------------------+
| 2019-02-06 17:34:57 |
| 2019-02-06 17:32:30 |
| 2019-02-06 17:32:09 |
+---------------------+

ข้อสังเกตเพิ่มเติม

  • ทำงานได้กับ DATETIME, DATE, TIME เช่นกัน
  • สามารถเรียงหลายคอลัมน์: ORDER BY date_col ASC, time_col DESC
  • ใช้กับ LIMIT ได้: ORDER BY ts DESC LIMIT 10 (หา 10 รายการล่าสุด)
  • หากคอลัมน์เป็น VARCHAR ที่เก็บวันที่ ให้ CAST ก่อน: ORDER BY CAST(date_str AS DATETIME)

MySQL จัดการการเปรียบเทียบวันที่/เวลาในชนิดข้อมูล native ได้อย่างมีประสิทธิภาพโดยไม่ต้องแปลง