MySQL6 TIMESTAMP의 범위가 2038-01-19 03:14:07까지인 이유 유닉스/리눅스 계열에서 사용되는 TIMESTAMP는 1970년 1월 1일 0시 0분 0초부터 몇초가 지났는지를 나타내는 정수이다. Unix Timestamp가 만들어질 당시 대부분 32bit OS 밖에 존재하지 않았다. (32bit INT 범위 = − 2³¹ ~ 2³¹ − 1) unsigned integer를 사용할 경우 2³² − 1 까지 가능하지만 1970-01-01 이전을 나타낼 수 없었기때문에 signed integer를 사용했다 따라서 1970-01-01 00:00:00에서 2³¹ − 1 초를 더하면 2038-01-19 03:14:07이다. 2021. 4. 3. 문자셋 변환 쿼리 실행 요청시 사용자가 요청한 쿼리 문장의 문자셋(character_set_client)->character_set_connetion으로 변환 후 실행한다. 방식이 같다면 변환하지 않는다. 쿼리 결과 전송시 컬럼의 문자 셋 -> character_set_result로 변환해서 리턴한다. 방식이 같다면 변환하지 않는다. 이모지를 표현할 수 있는 utfmb4 일때는 결과가 잘 보인다. character_set_connection를 ascii 로 이모지를 넣었을때는 올바른 문자가 들어가지 않게 된다. character_set_results를 ascii로 했을 경우에는 제대로 된 쿼리 결과를 얻을 수 없다. 2021. 4. 3. 이전 1 2 다음