Có chức năng MySQL nào có thể được sử dụng để chuyển đổi dấu thời gian Unix thành ngày có thể đọc được không? Tôi có một lĩnh vực nơi tôi lưu thời gian Unix và bây giờ tôi muốn thêm một lĩnh vực khác cho ngày có thể đọc được của con người.
Có chức năng MySQL nào có thể được sử dụng để chuyển đổi dấu thời gian Unix thành ngày có thể đọc được không? Tôi có một lĩnh vực nơi tôi lưu thời gian Unix và bây giờ tôi muốn thêm một lĩnh vực khác cho ngày có thể đọc được của con người.
Câu trả lời:
Sử dụng FROM_UNIXTIME()
:
SELECT
FROM_UNIXTIME(timestamp)
FROM
your_table;
Xem thêm: Tài liệu MySQL trênFROM_UNIXTIME()
.
from_unixtime
: dev.mysql.com/doc/refman/5.1/en/ Kẻ
TO_UNIXTIME
, nhưng thay vào đó UNIX_TIMESTAMP
.
Điều còn thiếu từ các câu trả lời khác (khi viết bài này) và không rõ ràng trực tiếp là from_unixtime
có thể lấy tham số thứ hai để chỉ định định dạng như vậy:
SELECT
from_unixtime(timestamp, '%Y %D %M %H:%i:%s')
FROM
your_table
Tôi nghĩ những gì bạn đang tìm kiếm là FROM_UNIXTIME()
Đây là một lớp lót nếu bạn có quyền truy cập nhanh vào clif mysql:
mysql> select convert_tz(from_unixtime(1467095851), 'UTC', 'MST') as 'local time';
+---------------------+
| local time |
+---------------------+
| 2016-06-27 23:37:31 |
+---------------------+
Thay thế 'MST'
bằng múi giờ mong muốn của bạn. Tôi sống ở Arizona, do đó, việc chuyển đổi từ UTC sang MST.
Cách dễ dàng và đơn giản:
select from_unixtime(column_name, '%Y-%m-%d') from table_name
Vì tôi thấy câu hỏi này không được biết, nên mysql luôn lưu trữ thời gian trong các trường dấu thời gian trong UTC nhưng sẽ hiển thị (ví dụ: phpmyadmin) theo múi giờ địa phương, tôi muốn thêm các phát hiện của mình.
Tôi có một trường được cập nhật tự động last_modified, được định nghĩa là:
`last_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Nhìn vào nó với phpmyadmin, có vẻ như đó là giờ địa phương, bên trong nó là UTC
SET time_zone = '+04:00'; // or '+00:00' to display dates in UTC or 'UTC' if time zones are installed.
SELECT last_modified, UNIX_TIMESTAMP(last_modified), from_unixtime(UNIX_TIMESTAMP(last_modified), '%Y-%c-%d %H:%i:%s'), CONVERT_TZ(last_modified,@@session.time_zone,'+00:00') as UTC FROM `table_name`
Trong bất kỳ chòm sao nào, UNIX_TIMESTAMP và 'dưới dạng UTC' luôn được hiển thị theo thời gian UTC.
Chạy cái này hai lần, lần đầu tiên mà không đặt time_zone.