Tôi có một cột trong cơ sở dữ liệu MySQL có chứa ngày bằng mili giây (epoch). Tôi muốn xây dựng một truy vấn SQL định dạng ngày tháng như một cái gì đó mà con người có thể đọc được (ngày, tháng, năm, giờ, phút, giây ở bất kỳ định dạng và múi giờ nào). Có một hàm SQL (hoặc MySQL cụ thể) để làm điều này không?MySQL chọn ngày được định dạng từ trường mili giây
Trả lời
Hãy thử sử dụng FROM_UNIXTIME
chức năng như thế này như được đưa ra trong manual
SELECT FROM_UNIXTIME(1196440219); -> '2007-11-30 10:30:19'
Bạn cũng có thể sử dụng định dạng như thế này
mysql> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(), -> '%Y %D %M %h:%i:%s %x'); -> '2007 30th November 10:30:59 2007'
Hoàn hảo, cảm ơn. Thời gian của tôi là một phần nghìn giây, do đó, một sửa đổi nhỏ đã làm chính xác những gì tôi muốn: 'SELECT FROM_UNIXTIME (\' column \ '/ 1000)'. –
Rất vui Nó đã hoạt động :) – woofmeow
Nếu bạn muốn nhận được micro từ một lĩnh vực, sử dụng% f,
select FROM_UNIXTIME(DATE_COLUMN/1000,'%Y-%M-%d %H:%i:%s %f') from TABLE_NAME;
+-------------------------------------------------------+
| FROM_UNIXTIME(CREATETIME/1000,'%Y-%M-%d %H:%i:%s %f') |
+-------------------------------------------------------+
| 2016-March-18 16:02:54 342000 |
+-------------------------------------------------------+
Nguồn: MYSQL DATE_FORMAT
Nếu bạn đang chia mili giây cho 1000 để giảm xuống còn giây, không phải micro giây nhất thiết phải là 0? – Maura
Bạn có thể sử dụng chức năng 'from_unixtime' trong truy vấn phụ. Kiểm tra câu trả lời dưới đây. – woofmeow