Fusion 날짜와 시각 함수
날짜와 timestamp를 만들거나 파싱하고, 구성 요소 및 기간을 계산합니다. 문자열 형식에는 작은따옴표를 사용합니다.
날짜와 Timestamp 생성
date(year: number, month: number, day: number): date_time
timestamp(year: number, month: number, day: number, hour: number, minute: number, second: number): date_time
date는 yyyy-MM-dd 형태의 날짜를, timestamp는 yyyy-MM-dd HH:mm:ss 형태의 시각을 만듭니다.
두 함수 모두 year가 1900보다 작으면 1900을 기준으로 한 오프셋으로 해석합니다. 예를 들어 97은 1997년입니다.
문자열 파싱
parse_date(date_string: string, [formats: string, ...]): date
parse_timestamp(timestamp_string: string, [formats: string, ...]): date_time
여러 형식을 지정하면 앞에서부터 하나가 성공할 때까지 시도합니다.
| 호출 | 의미 |
|---|---|
parse_date('25/01/2022', 'dd/MM/yyyy') | 2022년 1월 25일 |
parse_timestamp('25/01/2022 12:03', 'dd/MM/yyyy HH:mm') | 2022년 1월 25일 정오 3분 |
형식은 Java DateTimeFormatter의 패턴을 따릅니다. MM은 월, mm은 분이며 HH는 24시간 기준 시각, ss는 초입니다.
날짜를 표시 문자열로
date_format(date: date_time, format: string): string
날짜 또는 timestamp를 지정한 형식의 문자열로 바꿉니다.
=date_format('2021-05-06', 'MM-dd-yy')
결과는 05-06-21입니다.
일수 더하기와 빼기
date_add(dateOrDaysLeft: any, dateOrDaysRight: any): date_time
date_sub(dateOrDaysLeft: any, dateOfDaysRight: any): date_time
날짜나 timestamp에 일수 또는 하루의 소수 부분을 더하거나 뺍니다. 날짜 문자열은 yyyy-MM-dd 형식으로 사용합니다.
D2가 2021-05-06인 예시는 다음과 같습니다.
| 호출 | 결과 |
|---|---|
date_add(D2, 40) | 2021-06-15 |
date_add(D2, 0.5) | 2021-05-06 12:00 |
date_sub(D2, 40) | 2021-03-27 |
date_sub(D2, 0.5) | 2021-05-05 12:00 |
date_sub에 날짜 셀 두 개를 전달하면 두 날짜의 일수 차이를 계산할 수도 있습니다. date_sub(D1, D2)는 왼쪽 입력에서 오른쪽 입력을 뺍니다.
일수와 개월 수 차이
date_diff(start: date_time, end: date_time): number
months_between(start: date_time, end: date_time): number
date_diff는 두 날짜의 일수 차이를 반환합니다. 차이의 크기만 필요하면 절댓값으로 사용할 수 있습니다.
=abs(date_diff('2021-01-15', '2021-06-15'))
이 두 날짜 사이의 차이는 151일입니다. 방향 있는 차이가 필요하면 알려진 날짜 두 개로 인수 순서를 바꾸어 각각 계산하고 부호를 확인한 뒤 업무 수식에 적용합니다. 시작과 종료를 어느 인수에 넣을지 정하지 않은 채 양수 또는 음수의 의미를 해석하지 않습니다.
months_between은 두 날짜 사이의 개월 수입니다. months_between('2020-02-15', '2022-01-15')는 23입니다.
날짜와 시각의 구성 요소
아래 함수는 날짜, timestamp 또는 해당 값을 나타내는 입력에서 숫자 요소를 구합니다.
| 서명 | 반환값과 예시 |
|---|---|
day_of_month(date: date_time): number | 그달의 일. 2021-06-18은 18 |
day_of_year(date: date_time): number | 그해의 일 순서. 2021-06-18은 169 |
week_of_year(date: date_time): number | 그해의 주 번호. 2021-06-18은 24 |
month(date: date_time): number | 월. 2021-02-15 08:30:15는 2 |
quarter(date: date_time): number | 분기. 2021-08-15는 3 |
year(date: date_time): number | 연도. 2022-02-15 08:30:15는 2022 |
hour(date: date_time): number | 시. 2021-02-15 08:30:15는 8 |
minute(date: date_time): number | 분. 같은 시각은 30 |
second(date: date_time): number | 초. 같은 시각은 15 |
hour는 날짜나 분 값 대신 시 부분만 추출합니다.
그달의 마지막 날짜
last_day(date)
날짜를 문자열로 입력하여 해당 월의 마지막 날짜를 yyyy-MM-dd 형태로 얻습니다.
=last_day('2021-02-01')
결과는 2021-02-28입니다. 1월의 마지막 일은 31일이며 2월은 연도에 따라 28일 또는 29일입니다.
근무일 수
net_workdays(start_date: date_time, end_date: date_time, [holidays: any]): number
주말을 제외한 전체 근무일 수를 계산합니다. holidays 인수는 현재 지원하지 않으므로 이 함수로 공휴일을 제외하는 구성을 하지 않습니다.
예를 들어 다음 호출로 두 날짜 사이의 근무일 수를 계산할 수 있습니다.
=net_workdays('2021-01-01', '2021-02-01')
시작일과 종료일을 포함하는 방식은 실제 업무 달력의 일수와 대조한 뒤 적용합니다. 주말뿐 아니라 휴일을 제외해야 하는 업무라면 이 함수의 휴일 미지원 조건도 반영해야 합니다.
근무일만큼 이동
workday(start_date: date_time, value: number, [holidays: any]): date
시작 날짜에서 지정한 근무일 수만큼 앞이나 뒤의 날짜를 구합니다. 주말과 지정한 휴일은 제외합니다.
| 호출 | 결과 |
|---|---|
workday('2010-01-01', 10) | 2010-01-15 |
workday('2010-01-01', 10, '2010-01-05') | 휴일을 제외한 2010-01-18 |
이 함수의 holidays 지원과 net_workdays의 휴일 미지원은 구분합니다.
Unix timestamp
to_unix_timestamp(date: string, [pattern: string]): number
1970년 1월 1일 00:00:00 GMT부터 지난 밀리초 수로 변환합니다. 날짜, timestamp 또는 문자열을 입력할 수 있으며 문자열에는 파싱 패턴을 지정할 수 있습니다.
=to_unix_timestamp('2021-02-15', 'yyyy-MM-dd')
이 함수의 결과 단위는 초가 아닌 밀리초입니다.