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

지정된 형식 문자열이 STR_TO_DATE() 함수에 인수로 전달된 날짜 문자열과 일치하지 않는 경우 MySQL이 반환하는 것은 무엇입니까?

<시간/>

지정된 형식 문자열과 날짜 문자열이 일치하지 않으면 MySQL은 경고와 함께 NULL 값을 출력으로 반환합니다. 다음은 동일한 이해를 위한 예입니다 -

mysql> Select STR_TO_DATE('20172810', '%Y,%d%m');
+------------------------------------+
| STR_TO_DATE('20172810', '%Y,%d%m') |
+------------------------------------+
| NULL                               |
+------------------------------------+
1 row in set, 1 warning (0.00 sec)

형식 문자열에는 %Y 뒤에 쉼표(,)가 있지만 날짜 문자열에는 2017년 이후에는 쉼표가 없기 때문에 위 쿼리는 NULL을 출력으로 반환합니다.

mysql> Show Warnings\G
*************************** 1. row ***************************
Level: Warning
Code: 1411
Message: Incorrect datetime value: '20172810' for function str_to_date
1 row in set (0.00 sec)

마찬가지로 형식 문자열에서 날짜 단위의 순서를 날짜 문자열과 구별하면 MySQL은 위와 동일한 작업을 수행합니다. 이해를 돕기 위해 아래에 예가 나와 있습니다. -

mysql> Select STR_TO_DATE('20172810', '%d%m%Y');
+-----------------------------------+
| STR_TO_DATE('20172810', '%d%m%Y') |
+-----------------------------------+
| NULL                              |
+-----------------------------------+
1 row in set, 1 warning (0.00 sec)

위 쿼리에서 형식 문자열의 단위 순서는 날짜 문자열의 단위 순서에서 변경됩니다.

mysql> Show Warnings\G
*************************** 1. row ***************************
Level: Warning
Code: 1411
Message: Incorrect datetime value: '20172810' for function str_to_date
1 row in set (0.00 sec)