Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Did you hear? There's a new SQL AI Developer certification (DP-800). Start preparing now and be one of the first to get certified. Register now

Reply
Anonymous
Not applicable

Calculated Measure for Time Column

Hello everyone,

I have a column that contains Transaction Times.

mrbuttons07_0-1723468237037.png

How do I create a calculated column that differentiates the time into different categories like below.

If Time is within 23:45:01.0000000 to 06:45:00.0000000, then it's Night.
If Time is within 06:45:01.0000000 to 15:15:00.0000000 then it's Morning.
If Time is within 15:15:01.0000000 to 23:45:00.0000000 then it's Noon.

Thanks!

 

1 ACCEPTED SOLUTION
rajendraongole1
Super User
Super User

Hi @Anonymous - create a below calculated column , replace your table name and time column

Time Category =
SWITCH(
    TRUE(),
    'Date'[Transaction Time] >= TIME(23, 45, 1) || 'Date'[Transaction Time] <= TIME(6, 45, 0), "Night",
    'Date'[Transaction Time] >= TIME(6, 45, 1) && 'Date'[Transaction Time] <= TIME(15, 15, 0), "Morning",
    'Date'[Transaction Time] >= TIME(15, 15, 1) && 'Date'[Transaction Time] <= TIME(23, 45, 0), "Noon",
    BLANK()
)
 
Hope it helps




Did I answer your question? Mark my post as a solution!

Proud to be a Super User!





View solution in original post

2 REPLIES 2
DatawithDinesh
Resolver II
Resolver II

You can create a calculated column that uses switch statement to specify the period of the day depending on the condition that you specify. See below code.

TimeCategory = 
VAR CurrentTime = [TransactionTime]
RETURN 
SWITCH(
    TRUE(),
    CurrentTime >= TIME(23, 45, 1) || CurrentTime < TIME(6, 45, 0), "Night",
    CurrentTime >= TIME(6, 45, 1) && CurrentTime < TIME(15, 15, 0), "Morning",
    CurrentTime >= TIME(15, 15, 1) && CurrentTime < TIME(23, 45, 0), "Noon",
    "Unknown"
)

Hope this helps!

rajendraongole1
Super User
Super User

Hi @Anonymous - create a below calculated column , replace your table name and time column

Time Category =
SWITCH(
    TRUE(),
    'Date'[Transaction Time] >= TIME(23, 45, 1) || 'Date'[Transaction Time] <= TIME(6, 45, 0), "Night",
    'Date'[Transaction Time] >= TIME(6, 45, 1) && 'Date'[Transaction Time] <= TIME(15, 15, 0), "Morning",
    'Date'[Transaction Time] >= TIME(15, 15, 1) && 'Date'[Transaction Time] <= TIME(23, 45, 0), "Noon",
    BLANK()
)
 
Hope it helps




Did I answer your question? Mark my post as a solution!

Proud to be a Super User!





Helpful resources

Announcements
April Power BI Update Carousel

Power BI Monthly Update - April 2026

Check out the April 2026 Power BI update to learn about new features.

Fabric SQL PBI Data Days

Data Days 2026 coming soon!

Sign up to receive a private message when registration opens and key events begin.

New to Fabric survey Carousel

New to Fabric Survey

If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.