MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

Cách FROM_UNIXTIME () hoạt động trong MariaDB

Trong MariaDB, FROM_UNIXTIME() là một hàm ngày và giờ được tích hợp sẵn trả về giá trị ngày giờ dựa trên một dấu thời gian unix nhất định.

Bạn chuyển dấu thời gian unix cho hàm khi bạn gọi nó.

Kết quả được trả về trong 'YYYY-MM-DD HH:MM:SS' hoặc YYYYMMDDHHMMSS.uuuuuu định dạng, tùy thuộc vào việc hàm được sử dụng trong ngữ cảnh chuỗi hay số.

Giá trị được biểu thị theo múi giờ hiện tại.

Cú pháp

Hàm có thể được sử dụng theo những cách sau:

FROM_UNIXTIME(unix_timestamp)
FROM_UNIXTIME(unix_timestamp,format)

Nơi unix_timestamp là dấu thời gian unix và định dạng format là một chuỗi định dạng tùy chọn để định dạng kết quả.

Ví dụ

Đây là một ví dụ:

SELECT FROM_UNIXTIME(1721428321);

Kết quả:

+---------------------------+
| FROM_UNIXTIME(1721428321) |
+---------------------------+
| 2024-07-20 08:32:01       |
+---------------------------+

Micro giây

Dưới đây là một ví dụ bao gồm micro giây:

SELECT FROM_UNIXTIME(1721428321.123456);

Kết quả:

+----------------------------------+
| FROM_UNIXTIME(1721428321.123456) |
+----------------------------------+
| 2024-07-20 08:32:01.123456       |
+----------------------------------+

Ngữ cảnh dạng số

Khi sử dụng FROM_UNIXTIME() trong ngữ cảnh số, kết quả được trả về YYYYMMDDHHMMSS.uuuuuu định dạng:

SELECT FROM_UNIXTIME(1721428321.123456) + 0;

Kết quả:

+--------------------------------------+
| FROM_UNIXTIME(1721428321.123456) + 0 |
+--------------------------------------+
|                20240720083201.123456 |
+--------------------------------------+

Định dạng kết quả

Dưới đây là một ví dụ về việc chuyển một chuỗi định dạng để định dạng kết quả:

SELECT FROM_UNIXTIME(1721428321, '%W, %D %M %Y');

Kết quả:

+-------------------------------------------+
| FROM_UNIXTIME(1721428321, '%W, %D %M %Y') |
+-------------------------------------------+
| Saturday, 20th July 2024                  |
+-------------------------------------------+

Xem Chuỗi định dạng ngày MariaDB để biết danh sách các chuỗi định dạng có thể được sử dụng với FROM_UNIXTIME() chức năng.

Giới hạn dấu thời gian

Dấu thời gian trong MariaDB có giá trị tối đa là 2147483647 . Điều này là do giới hạn 32-bit cơ bản. Sử dụng hàm trên dấu thời gian ngoài dấu thời gian này dẫn đến null được trả lại.

Dưới đây là một ví dụ chứng minh hạn chế này:

SELECT 
    FROM_UNIXTIME(2147483647),
    FROM_UNIXTIME(2147483648);

Kết quả:

+---------------------------+---------------------------+
| FROM_UNIXTIME(2147483647) | FROM_UNIXTIME(2147483648) |
+---------------------------+---------------------------+
| 2038-01-19 13:14:07       | NULL                      |
+---------------------------+---------------------------+

Múi giờ

Kết quả của FROM_UNIXTIME() được biểu thị bằng múi giờ hiện tại.

Các ví dụ sau sử dụng cùng một dấu thời gian unix với các múi giờ khác nhau:

SET time_zone = 'America/New_York';
SELECT FROM_UNIXTIME(2147483647);

Kết quả:

+---------------------------+
| FROM_UNIXTIME(2147483647) |
+---------------------------+
| 2038-01-18 22:14:07       |
+---------------------------+

Chuyển sang múi giờ khác và chạy lại:

SET time_zone = 'Africa/Abidjan';
SELECT FROM_UNIXTIME(2147483647);

Kết quả:

+---------------------------+
| FROM_UNIXTIME(2147483647) |
+---------------------------+
| 2038-01-19 03:14:07       |
+---------------------------+

Dấu thời gian Unix hiện tại

Đây là một ví dụ sử dụng UNIX_TIMESTAMP() hàm trả về dấu thời gian unix hiện tại:

SELECT
    UNIX_TIMESTAMP(),
    FROM_UNIXTIME(UNIX_TIMESTAMP());

Kết quả:

+------------------+---------------------------------+
| UNIX_TIMESTAMP() | FROM_UNIXTIME(UNIX_TIMESTAMP()) |
+------------------+---------------------------------+
|       1621734047 | 2021-05-23 11:40:47             |
+------------------+---------------------------------+

Thiếu đối số

Đang gọi FROM_UNIXTIME() với số lượng đối số sai hoặc không chuyển bất kỳ đối số nào, dẫn đến lỗi:

SELECT FROM_UNIXTIME();

Kết quả:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FROM_UNIXTIME'

Và một ví dụ khác:

SELECT FROM_UNIXTIME( 1, 2, 3 );

Kết quả:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FROM_UNIXTIME'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách WEIGHT_STRING () hoạt động trong MariaDB

  2. Chạy MariaDB trong thiết lập đám mây kết hợp

  3. 2 cách xóa các hàng trùng lặp trong MariaDB (Bỏ qua khóa chính)

  4. Cách GET_FORMAT () hoạt động trong MariaDB

  5. Cách CONVERT () hoạt động trong MariaDB