Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào chúng ta có thể chuyển đổi các giá trị TIME và DATETIME sang dạng số trong MySQL?


Việc chuyển đổi các giá trị TIME (N) và DATETIME (N) sang dạng số có thể được thực hiện bằng cách thêm 0 (+0) vào chúng. Sau đây là các quy tắc cho loại chuyển đổi như vậy -

Được chuyển đổi thành INTEGER

Giá trị TIME (N) và DATETIME (N) sẽ được chuyển đổi thành số nguyên khi N bằng 0.

Ví dụ:giá trị của CURTIME () và NOW () có thể được chuyển đổi thành giá trị số nguyên như sau -

mysql> SELECT CURTIME(), CURTIME()+0;
+-----------+-------------------+
| CURTIME() | CURTIME()+0       |
+-----------+-------------------+
| 19:42:54  | 194254            |
+-----------+-------------------+
1 row in set (0.04 sec)

mysql> SELECT NOW(), NOW()+0;
+-------------------------+----------------------------------+
| NOW()                   | NOW()+0                          |
+-------------------------+----------------------------------+
| 2017-10-27 19:43:43     | 20171027194343                   |
+-------------------------+----------------------------------+
1 row in set (0.00 sec)

Được chuyển đổi thành DECIMAL

Giá trị TIME (N) và DATETIME (N) sẽ được chuyển đổi thành số nguyên khi N lớn hơn 0.
Ví dụ:các giá trị của CURTIME () và NOW () có thể được chuyển đổi thành các giá trị thập phân như sau -

mysql> SELECT CURTIME(), CURTIME(3)+0;
+-----------+-------------------+
| CURTIME() | CURTIME()+0       |
+-----------+-------------------+
| 19:47:40  | 194740.575        |
+-----------+-------------------+
1 row in set (0.04 sec)

mysql> SELECT NOW(), NOW(3)+0;
+-------------------------+----------------------------------+
| NOW()                   | NOW()+0                          |
+-------------------------+----------------------------------+
| 2017-10-27 19:48:45     | 20171027194845.589               |
+-------------------------+----------------------------------+
1 row in set (0.00 sec)