Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 날짜 값으로 지정하려면 문자열이나 숫자에 몇 자릿수가 있어야 합니까?

<시간/>

연도를 4자리 값으로 간주하지만 MySQL이 날짜 값으로 지정하려면 문자열이나 숫자에 최소 8자리가 필요합니다. 이 경우 마이크로초도 저장하려는 경우 값은 최대 20자리가 될 수 있습니다.

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

위의 쿼리는 TIMESTAMP 값에 대해 20자리 문자열을 사용합니다. 마지막 6자리는 마이크로초입니다.

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

위의 쿼리는 TIMESTAMP 값에 대해 8자리 문자열을 사용합니다.

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

위의 쿼리는 숫자가 8보다 작기 때문에 NULL을 반환합니다.

대조적으로 연도를 2자리 값으로 간주하지만 MySQL이 날짜 값으로 지정하려면 문자열이나 숫자에 최소 6자리가 필요합니다. 이 경우 마이크로초도 저장하려는 경우 값은 최대 18자리가 될 수 있습니다.

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

위의 쿼리는 TIMESTAMP 값에 대해 6자리 문자열을 사용합니다.

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

위의 쿼리는 TIMESTAMP 값에 대해 18자리 문자열을 사용합니다. 점(.) 뒤의 마지막 6자리는 마이크로초입니다.

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

위의 쿼리는 자릿수가 6보다 작기 때문에 NULL을 반환합니다.