Convert thành MySQL TIMESTAMP từ trường dữ liệu kiểu Int (11)

PHP & MySQL 15/09/2018 12:00 604
Đây là bài viết mình lượm nhặt được nhằm chuyển đổi trường dữ liệu kiểu Int(11) sang MySQL TIMESTAMP. Thông thường thì có một số coder rất thích lưu các dữ liệu kiểu ngày/tháng(date) bằng kiểu Int(10,11). Bài viết này sẽ giúp bạn cơ động giữa hai kiểu dữ liệu đó.

FOR MYSQL 5+

mysql> SELECT FROM_UNIXTIME(created) FROM node WHERE nid = 10;
+------------------------+
| from_unixtime(created) |
+------------------------+
| 2005-05-22 10:22:04    | 
+------------------------+

FOR MYSQL 4.1 AND LOWER:

Having converted MySQL TIMESTAMPs to Drupal's int(11) style timestamps, which records the number of seconds since epoch (midnight, January 1st 1970), I also had cause to convert the other direction: from an int(11) to a MySQL TIMESTAMP.
MySQL provides a utility function to convert from unix timestamps (the int(11) format): FROM_UNIXTIME.
From the MySQL documentation:
FROM_UNIXTIME(unix_timestamp) , FROM_UNIXTIME(unix_timestamp,format) Returns a representation of the unix_timestamp argument as a value in 'YYYY-MM-DD HH:MM:SS' or YYYYMMDDHHMMSS format, depending on whether the function is used in a string or numeric context. mysql> SELECT FROM_UNIXTIME(875996580); -> '1997-10-04 22:23:00' mysql> SELECT FROM_UNIXTIME(875996580) + 0; -> 19971004222300 If format is given, the result is formatted according to the format string. format may contain the same specifiers as those listed in the entry for the DATE_FORMAT() function. mysql> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(), -> '%Y %D %M %h:%i:%s %x'); -> '2003 6th August 06:22:58 2003'
Okay, so FROM_UNIXTIME can format the time/date in pretty much any way you'd like it, with the optional format argument.
Since we want the TIMESTAMP format, force MySQL to treat the date as an integer by adding 0 to it:
mysql> SELECT FROM_UNIXTIME(creation_date) + 0 FROM paid_support LIMIT 1;
+----------------------------------+
| FROM_UNIXTIME(creation_date) + 0 |
+----------------------------------+
|                   20031102084514 |
+----------------------------------+
1 row in set (0.00 sec)

Xem Thêm

Profile photo of adminTheHalfHeart

B.V.T

Sinh ra và lớn nên ở Bắc Giang. Hiện tại thì tôi đang là một lập trình viên tại VietISO. Tôi lập website này với mục đích là bookmark những gì tôi đã đọc qua và mong muốn chia sẻ những gì tôi biết.