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

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

Trong MariaDB, UNIX_TIMESTAMP() là một hàm ngày và giờ được tích hợp sẵn trả về dấu thời gian Unix, dựa trên đối số của nó (hoặc thiếu đối số).

Nó hoạt động như thế này:

  • Khi được gọi là không có một đối số, nó trả về một dấu thời gian Unix (giây kể từ '1970-01-01 00:00:00' UTC) dưới dạng một số nguyên không dấu.
  • Khi được gọi là với một đối số, nó trả về giá trị của đối số dưới dạng giây kể từ '1970-01-01 00:00:00' UTC.

Hàm nghịch đảo của UNIX_TIMESTAMP()FROM_UNIXTIME() .

Cú pháp

UNIX_TIMESTAMP() có thể được gọi theo hai cách sau:

UNIX_TIMESTAMP()
UNIX_TIMESTAMP(date)

Nơi date là một chuỗi ngày tháng, một chuỗi ngày giờ, một dấu thời gian hoặc một số ở định dạng YYMMDD hoặc YYYYMMDD .

Ví dụ - Không có Đối số

Đây là ví dụ về cách gọi UNIX_TIMESTAMP() không có đối số:

SELECT UNIX_TIMESTAMP();

Kết quả:

+------------------+
| UNIX_TIMESTAMP() |
+------------------+
|       1622502492 |
+------------------+

Điều này cho chúng tôi biết rằng khi tôi chạy câu lệnh đó, 1622502492 giây đã trôi qua kể từ 1970-01-01 00:00:00.

Ví dụ - Với một đối số

Dưới đây là một ví dụ với một đối số:

SELECT UNIX_TIMESTAMP('1970-01-02');

Kết quả:

+------------------------------+
| UNIX_TIMESTAMP('1970-01-02') |
+------------------------------+
|                        50400 |
+------------------------------+

Trong ví dụ sau, tôi gọi UNIX_TIMESTAMP() hai lần; một lần không đối số và một lần với NOW() như đối số.

SELECT 
    UNIX_TIMESTAMP(),
    UNIX_TIMESTAMP(NOW());

Kết quả:

+------------------+-----------------------+
| UNIX_TIMESTAMP() | UNIX_TIMESTAMP(NOW()) |
+------------------+-----------------------+
|       1622502678 |            1622502678 |
+------------------+-----------------------+

Chuỗi ngày giờ

Trong ví dụ trên, NOW() trả về giá trị ngày giờ.

Trong ví dụ này, tôi cung cấp một cách rõ ràng chuỗi ngày giờ:

SELECT UNIX_TIMESTAMP('2020-10-30 10:23:47');

Kết quả:

+---------------------------------------+
| UNIX_TIMESTAMP('2020-10-30 10:23:47') |
+---------------------------------------+
|                            1604017427 |
+---------------------------------------+

Micro giây

UNIX_TIMESTAMP() hỗ trợ micro giây:

SELECT UNIX_TIMESTAMP('2020-10-30 10:23:47.123456');

Kết quả:

+----------------------------------------------+
| UNIX_TIMESTAMP('2020-10-30 10:23:47.123456') |
+----------------------------------------------+
|                            1604017427.123456 |
+----------------------------------------------+

Số ngày

Số ngày tháng được hỗ trợ:

SELECT UNIX_TIMESTAMP(20201030);

Kết quả:

+--------------------------+
| UNIX_TIMESTAMP(20201030) |
+--------------------------+
|               1603980000 |
+--------------------------+

Đối số không hợp lệ

Khi được truyền bất kỳ đối số không hợp lệ nào, UNIX_TIMESTAMP() trả về null với một cảnh báo:

SELECT UNIX_TIMESTAMP('Homer');

Kết quả:

+-------------------------+
| UNIX_TIMESTAMP('Homer') |
+-------------------------+
|                    NULL |
+-------------------------+
1 row in set, 1 warning (0.001 sec)

Kiểm tra cảnh báo:

SHOW WARNINGS;

Kết quả:

+---------+------+-------------------------------+
| Level   | Code | Message                       |
+---------+------+-------------------------------+
| Warning | 1292 | Incorrect time value: 'Homer' |
+---------+------+-------------------------------+

Quá nhiều đối số

Gọi UNIX_TIMESTAMP() với quá nhiều đối số dẫn đến lỗi:

SELECT UNIX_TIMESTAMP('1970-01-02', '1970-01-03');

Kết quả:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 4 Hàm trả về phần giây từ giá trị thời gian trong MariaDB

  2. Cách UNCOMPRESS () hoạt động trong MariaDB

  3. MariaDB sắp đến một thành phố gần bạn!

  4. MariaDB GROUP_CONCAT ()

  5. MariaDB Server 10.0.33 hiện có sẵn