Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách chuyển đổi ngày 1/1 năm hiện tại thành timestamp (epoch) trong MySQL


Có thể thực hiện bằng hàm UNIX_TIMESTAMP() kết hợp với CONCAT(), YEAR() và CURDATE() như sau:

mysql> Select UNIX_TIMESTAMP(CONCAT(YEAR(CURDATE()),'-01-01'));
+--------------------------------------------------+
| UNIX_TIMESTAMP(CONCAT(YEAR(CURDATE()),'-01-01')) |
+--------------------------------------------------+
| 1483209000                                       |
+--------------------------------------------------+
1 row in set (0.03 sec)

Kết quả có thể kiểm tra bằng hàm FROM_UNIXTIME():

mysql> Select FROM_UNIXTIME(1483209000);
+---------------------------+
| FROM_UNIXTIME(1483209000) |
+---------------------------+
| 2017-01-01 00:00:00       |
+---------------------------+
1 row in set (0.02 sec)

Giải thích:

  • YEAR(CURDATE()) lấy năm hiện tại
  • CONCAT(...,'-01-01') tạo chuỗi ngày 1/1 của năm đó
  • UNIX_TIMESTAMP() chuyển đổi thành giây kể từ 1970-01-01 (epoch)