FromDateTime
FromDateTime
FromDateTime 함수는 형식화된 날짜·시간 문자열을 제공된 Joda-Time 패턴에 따라 밀리초로 변환하는 함수예요.
출처: 문서
본문
제공된 Joda-Time 패턴에 따라 형식화된 날짜·시간 문자열을 밀리초로 변환해요.
시그니처 (Signature)
FromDateTime(dateTimeString, pattern)
사용 예시 (Usage Examples)
SELECT FromDateTime('2019-08-07', 'yyyy-MM-dd') AS epochMillis
FROM ignoreMe
| epochMillis |
|---|
| 1565136000000 |
SELECT FromDateTime(
'2019-08-07 3:12:13 PM',
'yyyy-MM-dd hh:mm:ss a'
) AS epochMillis
FROM ignoreMe
| epochMillis |
|---|
| 1565190733000 |
SELECT FromDateTime(
'2019-08-07T15:12:13',
'yyyy-MM-dd''T''HH:mm:ss'
) AS epochMillis
FROM ignoreMe
| epochMillis |
|---|
| 1565190733000 |
SELECT FromDateTime(
'2019-08-07T07:12:13-0800',
'yyyy-MM-dd''T''HH:mm:ssZ'
) AS epochMillis
FROM ignoreMe
| epochMillis |
|---|
| 1565190733000 |
DST 처리 (DST Handling)
파싱된 벽시계 시간이 서머타임(DST) 앞당김 간격(대상 시간대에 로컬 시간이 존재하지 않는 경우)에 해당하면, FromDateTime()은 시간을 다음 유효 순간으로 자동으로 앞당겨요. 이 동작은 Trino, Spark, BigQuery의 표준 구현과 일치해요.
예시: 2026년 Africa/Cairo는 자정(00:00)이 4월 24일에 존재하지 않고 바로 01:00으로 건너뛰는 DST 전환을 해요. 이 날짜로 파싱하면 카이로 시간 01:00의 순간을 반환해요:
SELECT FromDateTime('2026-04-24', 'yyyy-MM-dd', 'Africa/Cairo') AS epochMillis
FROM ignoreMe
동작 변경: 4개 인자 오버로드 FromDateTime(ts, pattern, tz, defaultVal)은 이전에는 DST 간격 입력을 만나면 defaultVal을 반환했어요. 이 변경으로 3개 인자 오버로드와 일관되게 해결된 순간을 반환해요.
오류 처리: 다른 파싱 오류(파싱 불가 입력, 범위를 벗어난 필드 값)는 이전 동작과 동일하게 예외로 계속 표시돼요.