날짜/시간 유형 입력은 모두 다음을 사용하여 디코딩됩니다. 절차.
입력 문자열을 토큰으로 나누고 각각 분류하십시오 문자열, 시간, 시간대 또는 숫자로서의 토큰.
숫자 토큰에 콜론이 포함 된 경우 (:), 이것은 시간 문자열입니다. 모두 포함하십시오 후속 숫자와 콜론.
숫자 토큰에 대시가 포함 된 경우 (-), 슬래시 (/), 또는 둘 이상의 점 (.),이 텍스트 달이있을 수있는 사설 토토 문자열입니다. 사설 토토 인 경우 토큰이 이미 보였고 대신 해석됩니다 시간대 이름으로 (예 :America/New_York).
토큰이 숫자 만 있으면 단일 필드 또는 ISO 8601 연결 사설 토토 (예 :199901131999 년 1 월 13 일) 또는 시간 (예 :14151614:15:16).
토큰이 Plus (로 시작하는 경우+) 또는 마이너스 (-), 그러면 숫자 시간입니다 구역 또는 특별 필드.
토큰이 텍스트 문자열 인 경우 가능한 일치 문자열 :
토큰에 대한 이진 검색 테이블 조회를 시간대 약어.
발견되지 않은 경우 유사한 이진 검색 테이블을 수행하십시오 특별한 문자열로 토큰을 일치시키기위한 조회 (예 :오늘), Day (예 :목요일), 월 (예 :1 월) 또는 노이즈 워드 (예 :at, on).
아직 찾을 수없는 경우 오류를 던지십시오.
토큰이 숫자 또는 숫자 필드 일 때 :
8 ~ 6 자리가있는 경우, 다른 사람이없는 경우 날짜 필드는 이전에 읽은 다음 해석되었습니다 A로"연결 사설 토토"(예 :19990118또는990118). 해석은yyyymmdd또는yymmdd.
토큰이 3 자리이고 1 년이 이미있는 경우 읽은 다음 해를 해석했습니다.
4 ~ 6 자리와 1 년이 이미 있다면 읽기, 그런 다음 시간으로 해석하십시오 (HHMM또는HHMMSS).
3 자리 이상이고 날짜 필드가 아직없는 경우 발견 된 것은 1 년으로 해석됩니다 (이는 YY-MM-DD를 강요합니다 나머지 날짜 필드의 주문).
그렇지 않으면 사설 토토 필드 주문이 가정됩니다 따르십시오Datestyle설정 : MM-DD-YY, DD-MM-YY 또는 YY-MM-DD. a가 오류를 던지십시오 월 또는 일일 필드는 범위를 벗어난 것으로 밝혀졌습니다.
BC가 지정된 경우 연도를 부정하고 하나를 추가하십시오. 내부 저장 용. (해에는 제로가 없습니다 Gregorian 캘린더이므로 기원전 1 년은 숫자로 1 년이됩니다 영.)
BC가 지정되지 않은 경우, 연도 필드가 2 인 경우 길이가 숫자를 한 다음 해를 4 자리로 조정하십시오. 만약에 필드는 70 미만이고 2000을 추가하고 그렇지 않으면 추가하십시오. 1900.
팁 :Gregorian Years AD 1-99가 입력 될 수 있습니다 선행 0과 함께 4 자리를 사용하여 (예 :0099IS AD 99).