There is not a simple way to handle this on the report or the universe level.
This is all data that should be held within a Date dimension in a data warehouse. If you do not have a date dimesion, I highly recommend building one. It is very simple to create and requires almost no maintenance.
A date dimension, in common practice, will take all calendar dates and have mutliple descriptive columns that describe the date in more detail. These details could include: [Day of Month],[Day of Year],[Quarter of Year],[First Day of Month Indicator],[Last Day of Month Indicator],[Beginning Portion of Month],[Middle Portion of Month], etc…
Here is a really simple way to create a basic date dimension:
CASE
WHEN startdate < 6/30 THEN “FIRST HALF”
WHEN startdate > 6/30 THEN “SECOND HALF”
WHEN startdate < 3/31 THEN “QUARTER 1”
WHEN startdate between Jan 1 and Jan 9 then “EARLY JANUARY”
WHEN startdate between Jan 10 and Jan 18 then “MID JANUARY”
WHEN startdate…
I’m trying to see if there’s a better way of doing this than having a huge case statement for the two halves of the year, four quarters of the year and 12 months times 3 date ranges (Early, Mid, Late).
The problem with a case statement is that the date can be more than one of your conditions at once, but using a case will only return you the first ‘True’ value. Take, January 1st for example, it is both ‘FIRST HALF’ and ‘QUARTER 1’, but this case statement will only return ‘FIRST HALF’.
I still think the best way to handle this is my post above, which is creating a date dimension with the descriptive elements you are looking for.