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

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

Trong MariaDB, TO_SECONDS() là một hàm ngày và giờ được tích hợp sẵn để trả về số giây từ năm 0 đến biểu thức ngày tháng hoặc ngày giờ đã cho.

Cú pháp

Cú pháp như sau:

TO_SECONDS(expr)

Ở đâu expr là một giá trị ngày tháng hoặc ngày giờ.

Ví dụ

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

SELECT TO_SECONDS('2020-10-30');

Kết quả:

+--------------------------+
| TO_SECONDS('2020-10-30') |
+--------------------------+
|              63771235200 |
+--------------------------+

Đây là với một vài giá trị thời gian khác:

SELECT 
    TO_SECONDS('0000-01-01'),
    TO_SECONDS('1234-10-30');

Kết quả:

+--------------------------+--------------------------+
| TO_SECONDS('0000-01-01') | TO_SECONDS('1234-10-30') |
+--------------------------+--------------------------+
|                    86400 |              38967436800 |
+--------------------------+--------------------------+

Giá trị ngày giờ

Dưới đây là một ví dụ sử dụng giá trị ngày giờ:

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

Kết quả:

+-----------------------------------+
| TO_SECONDS('2020-10-30 10:23:47') |
+-----------------------------------+
|                       63771272627 |
+-----------------------------------+

Micro giây

TO_SECONDS() bỏ qua micro giây:

SELECT TO_SECONDS('2020-10-30 10:23:47.999999');

Kết quả:

+------------------------------------------+
| TO_SECONDS('2020-10-30 10:23:47.999999') |
+------------------------------------------+
|                              63771272627 |
+------------------------------------------+

Số ngày

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

SELECT TO_SECONDS(20201030);

Kết quả:

+----------------------+
| TO_SECONDS(20201030) |
+----------------------+
|          63771235200 |
+----------------------+

Ngày / Giờ hiện tại

Đây là một ví dụ sử dụng NOW() để trả về số giây dựa trên ngày và giờ hiện tại:

SELECT 
    NOW(),
    TO_SECONDS(NOW());

Kết quả:

+---------------------+-------------------+
| NOW()               | TO_SECONDS(NOW()) |
+---------------------+-------------------+
| 2021-05-31 09:34:16 |       63789672856 |
+---------------------+-------------------+

Tuy nhiên, nếu chúng ta sử dụng CURDATE() , chúng tôi sẽ nhận được một kết quả khác (bởi vì CURDATE() trả về giá trị ngày tháng, trong khi NOW() trả về giá trị ngày giờ).

SELECT 
    NOW(),
    TO_SECONDS(NOW()),
    CURDATE(),
    TO_SECONDS(CURDATE());

Kết quả (sử dụng đầu ra dọc):

                NOW(): 2021-05-31 09:35:01
    TO_SECONDS(NOW()): 63789672901
            CURDATE(): 2021-05-31
TO_SECONDS(CURDATE()): 63789638400

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

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

SELECT TO_SECONDS('Homer');

Kết quả:

+---------------------+
| TO_SECONDS('Homer') |
+---------------------+
|                NULL |
+---------------------+
1 row in set, 1 warning (0.000 sec)

Kiểm tra cảnh báo:

SHOW WARNINGS;

Kết quả:

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

Thiếu đối số

Đang gọi TO_SECONDS() 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 TO_SECONDS();

Kết quả:

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

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

SELECT TO_SECONDS('2020-10-08', '10:09:10');

Kết quả:

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

  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 trừ một ngày khỏi một ngày trong MariaDB

  2. Mang đến sự đổi mới nhanh hơn cho cộng đồng của MariaDB

  3. Cách ASIN () hoạt động trong MariaDB

  4. Chuyển sang MariaDB Backup

  5. HA cho MySQL và MariaDB - So sánh bản sao Master-Master với Galera Cluster