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

Có bao nhiêu chữ số trong chuỗi hoặc số để nó có thể được chỉ định làm giá trị ngày tháng bởi MySQL?

Trong khi coi năm là giá trị 4 chữ số, thì cần có tối thiểu 8 chữ số trong một chuỗi hoặc số để MySQL chỉ định nó làm giá trị ngày tháng. Trong trường hợp này, nếu chúng tôi cũng muốn lưu trữ micro giây thì giá trị có thể lên đến tối đa 20 chữ số.

mysql> Select TIMESTAMP('20171022040536.100000');
+-----------------------------------+
| TIMESTAMP('20171022040536100000') |
+-----------------------------------+
| 2017-10-22 04:05:36.100000        |
+-----------------------------------+
1 row in set, 1 warning (0.00 sec)

Truy vấn ở trên đang lấy chuỗi 20 chữ số cho giá trị TIMESTAMP. 6 chữ số cuối tính cho micro giây.

mysql> Select TIMESTAMP(20171022);
+---------------------+
| TIMESTAMP(20171022) |
+---------------------+
| 2017-10-22 00:00:00 |
+---------------------+
1 row in set (0.00 sec)

Truy vấn ở trên đang lấy chuỗi 8 chữ số cho giá trị TIMESTAMP.

mysql> Select TIMESTAMP(201710);
+-------------------+
| TIMESTAMP(201710) |
+-------------------+
| NULL              |
+-------------------+
1 row in set, 1 warning (0.00 sec)

Truy vấn trên trả về NULL vì các số của một chữ số nhỏ hơn 8.

Ngược lại, trong khi coi năm là giá trị 2 chữ số, thì cần có tối thiểu 6 chữ số trong một chuỗi hoặc số để MySQL chỉ định nó làm giá trị ngày tháng. Trong trường hợp này, nếu chúng tôi cũng muốn lưu trữ micro giây thì giá trị có thể lên đến tối đa 18 chữ số.

mysql> Select TIMESTAMP(171022);
+---------------------+
| TIMESTAMP(171022)   |
+---------------------+
| 2017-10-22 00:00:00 |
+---------------------+
1 row in set (0.00 sec)

Truy vấn ở trên đang lấy chuỗi 6 chữ số cho giá trị TIMESTAMP.

mysql> Select TIMESTAMP('171022040536.200000');
+----------------------------------+
| TIMESTAMP('171022040536.200000') |
+----------------------------------+
| 2017-10-22 04:05:36.200000       |
+----------------------------------+
1 row in set (0.00 sec)

Truy vấn ở trên đang lấy chuỗi 18 chữ số cho giá trị TIMESTAMP. 6 chữ số cuối cùng sau dấu chấm (.) Tính bằng micro giây.

mysql> Select TIMESTAMP(1710);
+-----------------+
| TIMESTAMP(1710) |
+-----------------+
| NULL            |
+-----------------+
1 row in set, 1 warning (0.00 sec)

Truy vấn trên trả về NULL vì số chữ số nhỏ hơn 6.