Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

날짜와 시간 사이에 'T'나 공백 대신 다른 문자를 사용하면 MySQL은 어떤 값을 반환할까?

날짜와 시간 구분자로 다른 문자를 사용한 경우의 MySQL 동작

MySQL에서 TIMESTAMP() 함수를 사용할 때, 날짜 부분과 시간 부분 사이에는 일반적으로 'T' 또는 공백(' ')이 구분자로 사용됩니다. 그런데 만약 이 자리에 'T'나 공백이 아닌 다른 문자를 사용하면 어떻게 될까요?

이 경우 MySQL은 날짜 부분은 정확하게 인식하여 반환하지만, 시간 부분은 모두 0으로 채워서 반환합니다. 즉, 시간 정보는 무시되고 '00:00:00'이 반환됩니다.

예제

아래 예제에서는 날짜와 시간 사이에 'T' 또는 공백 대신 문자 'W'를 사용했습니다.

mysql> Select TIMESTAMP('2017-10-20W06:10:36');
+----------------------------------+
| TIMESTAMP('2017-10-20W06:10:36') |
+----------------------------------+
| 2017-10-20 00:00:00 |
+----------------------------------+
1 row in set, 1 warning (0.00 sec)

결과 분석

실행 결과를 보면 다음과 같은 특징을 확인할 수 있습니다.

  • 날짜 부분(2017-10-20)은 정상적으로 인식되어 그대로 반환됩니다.
  • 시간 부분(06:10:36)은 인식되지 못하고 00:00:00으로 반환됩니다.
  • 쿼리 실행 시 1개의 경고(warning)가 발생하는데, SHOW WARNINGS; 명령으로 확인해 보면 잘못된 형식의 값이 잘렸다(truncated)는 메시지를 볼 수 있습니다.

따라서 날짜와 시간을 함께 다룰 때는 반드시 표준 구분자인 'T' 또는 공백을 사용해야 의도한 시간 값까지 정확하게 얻을 수 있습니다.