Version 2021
Date and Time Function
MicroStrategy pushes the calculations for the following list of built-in date and time functions down to PostgreSQL using the associated SQL patterns.
|
Function |
SQL Pattern or Example |
|---|---|
|
AddDays |
(#0 + #1 * INTERVAL '1 DAY') |
|
AddMonths |
(#0 + #1 * INTERVAL '1 MONTH') |
|
CurrentDate |
CURRENT_DATE |
|
CurrentDatetime |
CURRENT_TIMESTAMP |
|
CurrentTime |
CURRENT_TIME |
|
Date |
CAST(#0 AS DATE) |
|
DayOfMonth |
EXTRACT(DAY FROM #0) |
|
DayOfWeek |
(EXTRACT(DOW FROM #0) + 1) |
|
DayOfYear |
EXTRACT(DOY FROM #0) |
|
DaysBetween |
(CAST(#1 AS DATE) - CAST(#0 AS DATE)) |
|
Hour |
EXTRACT(HOUR FROM #0) |
|
MilliSecond |
(EXTRACT(MILLISECONDS FROM #0) % 1000) :: integer |
|
Minute |
EXTRACT(MINUTE FROM #0) |
|
Month |
EXTRACT(MONTH FROM #0) |
|
MonthEndDate |
(CAST(#0 AS DATE) + INTERVAL '1 MONTH' - EXTRACT(DAY FROM (#0 + INTERVAL '1 MONTH')) * INTERVAL '1 DAY') |
|
MonthsBetween |
(12 * (EXTRACT(YEAR FROM #1) - EXTRACT(YEAR FROM #0)) + EXTRACT(MONTH FROM #1) - EXTRACT(MONTH FROM #0) - (CASE WHEN EXTRACT(DAY FROM #0) > EXTRACT (DAY FROM #1) THEN 1 ELSE 0 END)) |
|
MonthStartDate |
(CAST(#0 AS DATE) - (EXTRACT(DAY FROM #0) - 1) * INTERVAL '1 DAY') |
|
Quarter |
EXTRACT(QUARTER FROM #0) |
|
Second |
CAST(BTRIM(CAST(EXTRACT(SECOND FROM #0)AS CHAR(2)),'.')AS INT) |
|
Week |
EXTRACT(WEEK FROM #0) |
|
Year |
EXTRACT(YEAR FROM #0) |
|
YearEndDate |
(CAST(#0 AS DATE) + (13 - EXTRACT(MONTH FROM #0)) * INTERVAL '1 MONTH' - EXTRACT(DAY FROM #0) * INTERVAL '1 DAY') |
|
YearStartDate |
(CAST(#0 AS DATE) - (EXTRACT(DAY FROM #0) - 1) * INTERVAL '1 DAY' - (EXTRACT(MONTH FROM #0) - 1) * INTERVAL '1 MONTH') |
MicroStrategy use the analytical engine to implement date and time function below:
| Function | Example of Analytical SQL calculated by the Analytical Engine |
|---|---|
|
DateDiff |
DateDiff(WJXBFS1, WJXBFS2, d) |
|
FiscalWeek |
FiscalWeek(WJXBFS1) |
|
ToDateTime |
ToDateTime(WJXBFS1) |
|
FiscalMonth |
FiscalMonth(WJXBFS1) |
|
FiscalQuarter |
FiscalMonth(WJXBFS1) |
|
FiscalYear |
FiscalMonth(WJXBFS1) |
|
QuarterStartDate |
QuarterStartDate(WJXBFS1) |
|
WeekStartDate |
WeekStartDate(WJXBFS1) |
