연도는 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을 반환합니다.
위 내용은 MySQL에서 날짜 값으로 지정하려면 문자열이나 숫자에 몇 자릿수가 있어야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!