안녕하세요, 수월한 노션의 라이언입니다👋
오늘은 노션 데이터베이스에서 시간만 추출하는 방법에 대해 알아보겠습니다. 날짜 속성에서 시간 정보만 분리해서 보고 싶을 때가 있잖아요?
이 글에서는 formatDate() 함수와 hour(), minute() 함수를 활용해 날짜에서 시간만 수월하게 추출하는 두 가지 방법을 정리해드릴게요.
노션 날짜 속성에서 시간 추출하기
노션의 날짜 속성은 기본적으로 날짜 + 시간을 함께 저장합니다. 하지만 보기나 필터링, 계산을 위해서는 시간만 따로 추출하고 싶은 경우가 많습니다. 예를 들어 날짜 없이 "09:00"만 보고 싶다거나, "오전 9시 이전 일정만 보기" 필터링을 할 때와 같은 상황이죠.
시간을 추출하는 방법은 크게 두 가지입니다.
- formatDate()를 사용해 문자열로 추출하는 방법
- hour(), minute()를 사용해 숫자로 추출하는 방법
🌱 방법1. formatDate()를 사용하여 문자열로 추출하기
✅ 기본 사용법
formatDate()는 세 가지 인수를 받습니다.
1. 날짜 속성
2. 시간 포맷 (텍스트)
3. 시간대 (선택)
이때 날짜 속성은 formatDate()의 인수로 넣을 수도(1번) 있고, 날짜 속성 뒤에 마침표(.)으로 연결 (2번) 할 수도 있습니다
// 날짜 속성 값이 2025-03-29 14:30:45일 경우
// 1. 날짜를 formatDate()의 인수로 넣기
formatDate(prop("날짜"), "HH:mm") // 결과: 14:30
// 2. 날짜 뒤에 점(.)으로 formatDate() 쓰기
prop("날짜").formatDate("HH:mm") // 결과: 14:30
✅ 오전/오후 정보가 필요할 때
위 수식에서 시간을 "HH"를 사용하여 24시간 기준으로 표시했기 떄문에 오전/오후 정보가 필요하지 않은데요.
만약 "hh"를 사용하면 12시간 기준으로 시간이 표시되기 때문에 오전/오후 정보가 필요합니다.
이때는 오전/오후 날짜를 표시하고 싶은 위치에 "A"를 붙여주면 됩니다.
// 날짜 속성 값이 2025-03-29 14:30:45일 경우
formatDate(prop("날짜"), "A hh:mm") // 결과: 오후 02:30
⏱️시간 관련 포맷 옵션 정리
H | 0~23 시간 (1자리) | 3, 14 | 24시간 형식, 0 padding 없음 |
HH | 00~23 시간 (2자리) | 03, 14 | 24시간 형식, 항상 2자리 |
h | 1~12 시간 (1자리) | 3, 9 | 12시간 형식, 0 padding 없음 |
hh | 01~12 시간 (2자리) | 03, 09 | 12시간 형식, 항상 2자리 |
m | 분 (1자리) | 5, 45 | 0 padding 없음 |
mm | 분 (2자리) | 05, 45 | 항상 2자리 |
s | 초 (1자리) | 7, 59 | 0 padding 없음 |
ss | 초 (2자리) | 07, 59 | 항상 2자리 |
A | 오전/오후 | AM, PM (오전, 오후) | 대문자 AM/PM |
a | 오전/오후 | am, pm (오전, 오후) | 소문자 am/pm |
Z | 시간대 오프셋 | +0900, -0500 | 시스템 기준으로 자동 표시 |
🌱 방법2. hour(), minute()를 사용하여 숫자로 추출하기
✅ 기본 사용법
이 방법은 말 그대로 시간과 분을 각각 쪼개서 표현하는 방법입니다.
// 날짜 속성 값이 2025-03-29 14:30:45일 경우
// 1. hour()
hour(prop("날짜")) // 결과: 14
// 2. minute()
minute(prop("날짜")) // 결과: 30
hour()와 minute()은 시간과 분을 '텍스트' 가 아닌 '숫자'로 추출하기 때문에, 아래 상황에서 사용하기에 좋답니다.
- 시간 비교 (예: hour() > 12)
- 조건부 필터링
- 수식 계산 (예: 분 단위 합산 등)
🚀심화1. 날짜 범위(Date Range)에 적용하기
만약 날짜 속성이 시작/종료 시간이 있는 범위일 경우 dateStart() 또는 dateEnd() 함수와 함께 사용할 수 있습니다.
// 날짜 속성 값이 2025-03-29 14:30:45 ~ 15:00:00 일 경우
// 1. 시작일
prop("날짜").dateStart().formateDate("A hh:mm") // 결과: 오후 02:30
prop("날짜").dateStart().formateDate("HH:mm") // 결과: 14:30
prop("날짜").dateStart().hour() // 결과: 14
prop("날짜").dateStart().minute() // 결과: 30
// 2. 종료일
prop("날짜").dateEnd().formateDate("A hh:mm") // 결과: 오후 03:00
prop("날짜").dateEnd().formateDate("HH:mm") // 결과: 15:00
prop("날짜").dateEnd().hour() // 결과: 15
prop("날짜").dateEnd().minute() // 결과: 00
🚀심화 2. 시간대가 다른 지역의 시간을 표시하고 싶을 때
formatDate()는 노션 내부적으로 UTC(협정 세계시)로 저장된 값을 사용자의 로컬 시간대 기준으로 변환하여 보여줍니다.
쉽게 말해, 날짜 열에서는 시간대를 우리나라보다 8시간 빠른 Europe/Paris (UTC +1)로 설정하더라도, formatDate()를 하면 우리나라 기준인 Asia/Seoul(UTC +9)로 변경되는 거예요.
위 예시를 하나씩 살펴볼게요.
1. 날짜에서는 각 위치에 맞게 '시간대'를 설정하였습니다.
노션은 시간을 로컬 시간대로 자동 변환하여 보여주기 때문에, 파리의 오후 1시는 서울 기준(오후 9시)으로 자동으로 변환됩니다.
2. formatDate(시간대 설정 X)에서는 시간대 정보를 사용하지 않았습니다.
시간대 정보가 없기 떄문에 파리의 시간이 오후 1시가 아닌 현재 대한민국 서울의 시간인 오후 9시로 자동 변환됩니다.
// 대한민국 서울 날짜 값 = 2025-03-29 T 13:00:00 + 09:00
formatDate(prop("날짜"), "A hh:mm") // 결과: 오후 01:00
// 프랑스 파리 날짜 값 = 2025-03-29 T 13:00:00 + 01:00
formatDate(prop("날짜"), "A hh:mm") // 결과: 오후 09:00
3. formatDate(시간대 설정 O)에서는 시간대 정보를 사용했습니다.
이제서야 파리의 시간이 실제와 동일하게 13시를 보여주네요.
// 날짜(대한민국 서울) = 2025-03-29 T 13:00:00 + 09:00
// 시간대 = "Asia/Seoul"
formatDate(prop("날짜"), "A hh:mm", prop("시간대")) // 결과: 오후 01:00
// 날짜(프랑스 파리) = 2025-03-29 T 13:00:00 + 01:00
// 시간대 = "Europe/Paris"
formatDate(prop("날짜"), "A hh:mm", prop("시간대")) // 결과: 오후 01:00
마무리하며
노션 데이터베이스에서 시간을 추출하려면 목적에 따라 적절한 방법을 선택하는 것이 중요해요.
- 보기용이라면 formatDate()
- 비교나 계산용이라면 hour() / minute()
두 가지 방법을 잘 활용하면 노션을 훨씬 더 유연하게 사용할 수 있습니다. 😀
궁금한 점이나 실습 중 막히는 부분이 있다면 댓글로 남겨주세요. 수월한 노션 활용을 계속 도와드릴게요! 💪
'수월한 노션📓 > 📝 노션 기초 가이드' 카테고리의 다른 글
[수월한 노션] 클릭 한 번으로 자동화! 노션 버튼 블록 완전 활용 가이드 (0) | 2025.04.06 |
---|---|
[수월한 노션] 노션 수식, let과 lets로 깔끔하게 정리하는 법 (0) | 2025.03.31 |