728x90
반응형
* velog에서 포스팅했던 글을 옮겨왔습니다.
- 본문에서 언급하는 필드는 곧 속성이다.
- 예시 기준으로 필드명(속성명)을 언급한다.
- 일수 계산 기준으로 설명한다. (unit이 "days"인 케이스)
날짜 계산 수식 :: dateBetween()
날짜 계산이라고 편의상 줄여 부르는 것은 원하는 단위로 얼마나 시간이 경과했는지 표현하는 것이다.
dateBetween 수식은 임의의 종료 시점 - 임의의 시작 시점 = n(단위) 라고 해석하면 된다.
dateBetween(인수1, 인수2, 계산단위)
dateBetween(종료, 시작, 계산단위)
--
인수1 = 종료 시점
인수2 = 시작 시점
1개의 날짜 필드 활용 (시작일 ~ 종료일)
독서기간이라는 1개의 날짜 필드 안에 시작일과 종료일 값을 한 번에 담고 있다.
그래서 종료 시점과 시작 시점을 각각 반환(=추출)하기 위한 수식이 먼저 추가로 필요하다.
[case 1,2 공통] 기간 값에서 시작일과 종료일을 반환하는 수식
dateEnd(기간)
dateStart(기간)
[case 1] 0일부터 시작
종료 시점에서 시작 시점을 일수로 단순하게 뺀 수식이다.
dateBetween(dateEnd("속성명"), dateStart("속성명"), "days")
dateBetween(dateEnd(독서 기간), dateStart(독서 기간), "days")
이렇게 되면 하루 만에 다 읽었음을 표현하고 싶어도 0일로 표시된다.
[case 2] 1일부터 시작 (기념일 계산처럼)
기념일 계산하듯이 시작 시점부터 1일로 취급하고 싶다면
계산된 수식 결과 뒤에 1이 더해지도록 하면 된다.
+1
dateBetween(dateEnd("속성명"), dateStart("속성명"), "days") + 1
dateBetween(dateEnd(독서 기간), dateStart(독서 기간), "days") + 1
1일에 걸쳐 다 읽었음을 나타낼 수 있게 되었다.
2개의 날짜 필드 활용 (시작일, 종료일)
시작 시점과 종료 시점을 각각 입력한 2개의 필드가 존재할 때 계산하는 방법이다.
[case 1] 0일부터 시작
종료 시점, 시작 시점 순으로 인수 1,2 자리에 바로 작성하면 된다.
dateBetween("속성명", "속성명", "days")
dateBetween(독서 종료, 독서 시작, "days")
[case 2] 1일부터 시작
1개 필드 활용에서 이미 설명한 것처럼
2개 날짜 필드를 활용할 때도 1일차부터 적용하고 싶다면
수식 뒤에 1을 더해주면 된다.
dateBetween(prop("속성명"), prop("속성명"), "days") + 1
dateBetween(독서 종료, 독서 시작, "days") + 1
장,단점 정리
1개 필드 활용
- 장점: 데이터베이스에서 필드를 1개만 관리하면 된다.
- 단점: 수식 작성할 때 중첩이 되어 복잡하거나 번거롭게 느껴질 수 있다.
2개 필드 활용
- 장점: 수식 작성할 때 인수만 바로 넣으면 되므로 상대적으로 단순하다.
- 단점: 데이터베이스에서 필드 2개를 관리해야 한다.
참고로 저는 노션 데이터베이스를 관리할 때만큼은
관리하는 필드 수를 최대한 줄이고 싶어서 1개 필드 방법으로 적용합니다.
728x90
반응형