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

MySQL แสดงเฉพาะวันที่จากค่า Timestamp (Unix Timestamp)

ใช้ฟังก์ชัน FROM_UNIXTIME() เพื่อแปลงค่า Unix Timestamp (วินาทีนับจาก 1 มกราคม 1970) ให้เป็นรูปแบบวันที่และเวลาที่อ่านง่าย

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

1. สร้างตารางเก็บค่า Timestamp

mysql> CREATE TABLE DemoTable (
    timestampValue BIGINT
);
Query OK, 0 rows affected (0.70 sec)

2. เพิ่มข้อมูลทดสอบ (Unix Timestamp)

mysql> INSERT INTO DemoTable VALUES(1538332200);
Query OK, 1 row affected (0.21 sec)
mysql> INSERT INTO DemoTable VALUES(1577730600);
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable VALUES(1488652200);
Query OK, 1 row affected (0.12 sec)

3. แสดงข้อมูลดิบ

mysql> SELECT * FROM DemoTable;
+----------------+
| timestampValue |
+----------------+
|     1538332200 |
|     1577730600 |
|     1488652200 |
+----------------+

4. แปลงแสดงเป็นวันที่และเวลา

mysql> SELECT FROM_UNIXTIME(timestampValue) AS Date FROM DemoTable;

5. ผลลัพธ์

+---------------------+
| Date                |
+---------------------+
| 2018-10-01 00:00:00 |
| 2019-12-31 00:00:00 |
| 2017-03-05 00:00:00 |
+---------------------+

เคล็ดลับเพิ่มเติม

  • ใช้ DATE(FROM_UNIXTIME(timestampValue)) หากต้องการ เฉพาะวันที่ ไม่ต้องการเวลา
  • ใช้ FROM_UNIXTIME(timestampValue, '%Y-%m-%d') เพื่อกำหนดรูปแบบวันที่เอง
  • Unix Timestamp มักจะเป็นชนิดข้อมูล BIGINT หรือ INT (สำหรับปีก่อน 2038)