각 λ‚˜λΌμ—μ„œ μ‚¬μš©ν•˜λŠ” ν‘œμ€€ μ‹œκ°„μ€ λ‹€λ₯΄κ³  λ™μΌν•œ λ‚˜λΌμ—μ„œλ„ μ—¬λŸ¬κ°€μ§€ μ‹œκ°„ 기쀀이 μ‘΄μž¬ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜, κ°œλ°œμžλ“€μ€ μ‚¬λžŒλ§ˆλ‹€ λ‹€λ₯Έ μ‹œκ°„μ„ κ·ΈλŒ€λ‘œ μ‚¬μš©ν•  수 μ—†μœΌλ©° μ „μ„Έκ³„μ μœΌλ‘œ μ‚¬μš©λ˜λŠ” ν‘œμ€€ μ‹œκ°„μœΌλ‘œ μ •μ˜λœ 것을 λ”°λΌμ•Όν•©λ‹ˆλ‹€. μ„Έκ³„ν˜‘μ •μ‹œλΌκ³  λΆ€λ₯΄λŠ” UTCλŠ” 1970λ…„ 1μ›” 1일을 κΈ°μ€€μœΌλ‘œ μ‚°μ •ν•œ μ‹œκ°„μœΌλ‘œ 보톡 μœ λ‹‰μŠ€ μ‹œκ°„ λ˜λŠ” μœ λ‹‰μŠ€ νƒ€μž„μŠ€νƒ¬ν”„λΌκ³  ν•©λ‹ˆλ‹€.

μœ λ‹‰μŠ€ μ‹œκ°„

기본적으둜 νƒ€μž„μŠ€νƒ¬ν”„μ— λŒ€ν•΄μ„œ 초 λ‹¨μœ„λ‘œ μ„Έμ–΄μ§€λŠ” μ •μˆ˜λ‘œ ν‘œν˜„ν•œ 값을 μœ λ‹‰μŠ€ μ‹œκ°„(Unix Epoch) λ˜λŠ” μœ λ‹‰μŠ€ νƒ€μž„μŠ€νƒ¬ν”„λΌκ³  ν•©λ‹ˆλ‹€. PostgreSQL μ—μ„œλŠ” νƒ€μž„μŠ€νƒ¬ν”„ μœ ν˜•μ˜ μ»¬λŸΌμ— λŒ€ν•΄μ„œ EPOCH ν‚€μ›Œλ“œλ₯Ό ν†΅ν•΄μ„œ 초 λ‹¨μœ„λ‘œ ν™˜μ‚°λœ μœ λ‹‰μŠ€ μ‹œκ°„μ„ μΆ”μΆœν•  수 μžˆλ„λ‘ μ§€μ›ν•©λ‹ˆλ‹€.

νƒ€μž„μŠ€νƒ¬ν”„ 정밀도

μœ λ‹‰μŠ€ μ‹œκ°„μ΄ μ •μ˜λ˜κ³  μ‹œκ°„μ΄ 흘러 ν˜„μž¬λŠ” νƒ€μž„μŠ€νƒ¬ν”„κ°€ 초 λ‹¨μœ„κ°€ μ•„λ‹Œ 밀리고 그리고 μ‹¬μ§€μ–΄λŠ” λ‚˜λ…Έμ΄ˆ κΉŒμ§€μ˜ λ‹¨μœ„λ‘œ νƒ€μž„μŠ€νƒ¬ν”„ 정밀도λ₯Ό μ§€μ›ν•˜κ²Œ λ©λ‹ˆλ‹€. μ‚¬μš©ν•˜λŠ” μ–Έμ–΄ λ˜λŠ” μ™ΈλΆ€ μ†”λ£¨μ…˜μ— λ”°λΌμ„œ 정밀도 ν‘œν˜„ 지원이 λ‹€λ₯΄λ©° 심지어 μ‹œκ³„μ—΄ λ°μ΄ν„°λ² μ΄μŠ€μΈ KDB+ μ—μ„œμ˜ μ‹œκ°„ μœ ν˜•μ€ 1970λ…„ 1μ›” 1일이 μ•„λ‹Œ 2000λ…„ 1μ›” 1일을 κΈ°μ€€μ˜ λ‚˜λ…Έμ΄ˆ 정밀도λ₯Ό κ°€μ§€λŠ” νƒ€μž„μŠ€νƒ¬ν”„λ₯Ό μ§€μ›ν•©λ‹ˆλ‹€.

2000.01.01=0
1b

.z.p
2022.09.01D21:38:52.940328000

νƒ€μž„μŠ€νƒ¬ν”„λ₯Ό 슀칼라 μ‹€μˆ˜λ‘œ λ³€ν™˜ν•΄λ³΄λ©΄ λ‚˜λ…Έμ΄ˆ λ‹¨μœ„λ‘œ 세어진 μ •μˆ˜κ°’μœΌλ‘œ ν‘œν˜„λ˜λ―€λ‘œ λ‹€λ₯Έ μ‹œμŠ€ν…œκ³Ό μ—°κ³„ν•˜κΈ° μœ„ν•΄ 1970λ…„ 1μ›” 1일 λΆ€ν„°μ˜ λ°€λ¦¬μ΄ˆ λ‹¨μœ„λ‘œ μ„Έμ–΄μ§€λŠ” μ •μˆ˜κ°’μœΌλ‘œ ν™˜μ‚°ν•  수 μžˆμŠ΅λ‹ˆλ‹€. (1 λ‚˜λ…Έμ΄ˆλŠ” 10^6 λ°€λ¦¬μ΄ˆ μž…λ‹ˆλ‹€.)

floor((`long$2022.09.01D21:38:52.940328000)-`long$1970.01.01D00:00)%1e6
1662068332940

ν˜„μž¬ μ‘°μ§μ—μ„œλŠ” 초 λ‹¨μœ„μ˜ μœ λ‹‰μŠ€ μ‹œκ°„μ΄ μ•„λ‹Œ λ°€λ¦¬μ΄ˆλ‘œ ν™˜μ‚°ν•œ μ •μˆ˜κ°’μ„ ν† λŒ€λ‘œ νƒ€μž„μŠ€νƒ¬ν”„μ— λŒ€ν•œ 데이터λ₯Ό μ‹œμŠ€ν…œ κ°„ μ „λ‹¬ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λŒ€λΆ€λΆ„μ˜ μ‹œμŠ€ν…œμ€ μ—¬λŸ¬κ°€μ§€ μ–Έμ–΄λ‘œ μž‘μ„±λœ μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό μ™ΈλΆ€ μ†”λ£¨μ…˜κ³Όμ˜ 연계λ₯Ό μˆ˜ν–‰ν•˜λ©° λ™μž‘ν•˜κ²Œ λ˜λ―€λ‘œ 각 μ‹œμŠ€ν…œμ—μ„œ μ§€μ›ν•˜λŠ” νƒ€μž„μŠ€νƒ¬ν”„μ˜ 정밀도 ν‘œν˜„ 차이둜 μΈν•΄μ„œ μ•½κ°„μ˜ 차이가 λ°œμƒν•  수 μžˆμŒμ„ κ³ λ €ν•΄μ•Όν•  수 μžˆμŠ΅λ‹ˆλ‹€.

νƒ€μž„μŠ€νƒ¬ν”„ ν‘œν˜„

μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈ κ°„ μš”μ²­κ³Ό 응닡 μ‹œ μ „λ‹¬λ˜λŠ” νŽ˜μ΄λ‘œλ“œμ— ν¬ν•¨λ˜λŠ” νƒ€μž„μŠ€νƒ¬ν”„λŠ” μ–΄λ–»κ²Œ ν‘œν˜„ν•  수 μžˆμ„κΉŒμš”? 일반적으둜 μ‹œμŠ€ν…œ λ˜λŠ” 개발자의 μ„ ν˜Έλ„μ— λ”°λΌμ„œ UTC κΈ°μ€€μ˜ EpochλΌλŠ” 숫자 ν˜•νƒœ λ˜λŠ” RFC 3339의 ISO 8601 ν˜•μ‹μœΌλ‘œ λ¬Έμžμ—΄ ν˜•νƒœλ‘œ ν‘œν˜„ν•˜κ²Œ λ©λ‹ˆλ‹€. 더 λ‚˜μ€ API 섀계 μ‹œμ—λŠ” ISO 8601 UTCλ₯Ό μ‚¬μš©ν•΄μ•Όν•œλ‹€λŠ” 관점이 μžˆμ§€λ§Œ 간을 λ¬Έμžμ—΄λ‘œ ν‘œν˜„ν•˜λŠ” κ²ƒμ—λŠ” 윀초 λ¬Έμ œκ°€ ν¬ν•¨λ˜μ–΄μžˆκΈ° λ•Œλ¬Έμ— 윀초λ₯Ό λ¬΄μ‹œν•œ λ°€λ¦¬μ΄ˆ λ‹¨μœ„μ˜ μœ λ‹‰μŠ€ μ‹œκ°„μ„ μ‚¬μš©ν• λ•Œμ—λ„ μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 유튜브의 경우 μ‚¬μš©μžμ˜ 이벀트 νŠΈλž˜ν‚Ήμ„ μœ„ν•΄ 둜그 이벀트λ₯Ό 전솑할 λ•Œμ— λ°€λ¦¬μ΄ˆ λ‹¨μœ„μ˜ μ •μˆ˜κ°’μ„ μ „λ‹¬ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.