Forum Discussion

runnerpaul's avatar
runnerpaul
Regular Visitor
10 years ago
Solved

Create Morning/Afternoon columns based on DateTime column

Hi,

 

I have a table with a datetime column called CREATEDDATETIME. I want to use it to create a new column where depending on the time it gets populated with Morning or Afternoon. Anything before 13:00 would be morning and anything after would be Afternoon. Is this possible and if so how do I do it?

 

Cheers

Paul

  • Hi Paul, you can use the HOUR function in an IF statement to calculate this.

     

    Example:

    MorningAfternoon = if((HOUR(TimeTable[CREATEDDATETIME]) <= 12), "Morning", "Afternoon")

     

    Thanks,
    Sam Lester (MSFT)

3 Replies

  • SamLester's avatar
    SamLester
    Microsoft Employee

    Hi Paul, you can use the HOUR function in an IF statement to calculate this.

     

    Example:

    MorningAfternoon = if((HOUR(TimeTable[CREATEDDATETIME]) <= 12), "Morning", "Afternoon")

     

    Thanks,
    Sam Lester (MSFT)

    • kranthi82's avatar
      kranthi82
      Helper I

      Hi SamLester ,

      I just have another follow up question regarding shift system that I'm trying to create in power bi and hope you have some solution.

      In my case I need to create based on the day, for example if it's monday or tuesday etc., so in Excel I used Switch function as follows. I could do this by "IF" but it's going to be a very long formula so I was wondering if there's any better way.

      SWITCH([@Day];"mon";LOOKUP([@Hour];{0;6;15};{"N";"FM";"EM"});"tue";LOOKUP([@Hour];{0;6;15};{"N";"FM";"EM"});"wed";LOOKUP([@Hour];{0;6;15};{"N";"FM";"EM"});"thu";LOOKUP([@Hour];{0;6;15};{"N";"FM";"EM"});"fri";LOOKUP([@Hour];{0;6;15};{"N";"FM";"N14"});"Sat";LOOKUP([@Hour];{0;5;18};{"N14";"D13";"N14"});"sun";LOOKUP([@Hour];{0;8;18};{"N14";"D13";"N"});"") 

      where N= night, FM= morning and EM= afternoon etc.  

       

      Thank you in advance,

      /Kranthi

    • Anonymous's avatar
      Anonymous
      Not applicable

      This worked, thank you.