Forum Discussion

johnjohn-Peter's avatar
johnjohn-Peter
Iron Contributor
Aug 26, 2024

Replace a Date/Time field which store Date & time, with a Date Only field and a choice field + 5 cal

I use to have a sharepoint column of type Date/Time which allow Date & Time, but when i am viewing this field inside PnP Modern search web part, i will get the date & time in UTC and not in local sharepoint site time zone (which is pacific time US & Canada). i tried to format the data using this library , but still there will be 2 hours differences:-

 

{{ getDate (getDate (slot item root.slots.PUETA) "YYYY-MM-DDTHH:mm:ss.0000000\Z") "MMMM DD, YYYY h:mm a" 3 }}

so i decided to take this appraoch instead, where instead of having single column of type Date/Time, i created 2 columns:-

  1. Date only field..named "PUETADate"
  2. choice field with values such as 12:00 AM, 2;00 PM, and so one.. named "PUETATime"

    then to be able to sort and filter the combination of those fields, i created 5 calculated columns:-

  3. PUETAAMHour

    =IF(AND(ISERROR(FIND("PM",PUETATime)),ISERROR(FIND(":30",PUETATime))),IF(PUETATime="12:00 AM",PUETADate,IF(PUETATime="1:00 AM",PUETADate+60/(2460),IF(PUETATime="2:00 AM",PUETADate+120/(2460),IF(PUETATime="3:00 AM",PUETADate+180/(2460),IF(PUETATime="4:00 AM",PUETADate+240/(2460),IF(PUETATime="5:00 AM",PUETADate+300/(2460),IF(PUETATime="6:00 AM",PUETADate+360/(2460),IF(PUETATime="7:00 AM",PUETADate+420/(2460),IF(PUETATime="8:00 AM",PUETADate+480/(2460),IF(PUETATime="9:00 AM",PUETADate+540/(2460),IF(PUETATime="10:00 AM",PUETADate+600/(2460),IF(PUETATime="11:00 AM",PUETADate+660/(24*60))))))))))))))

  4. PUETAAMHalfHour

    =IF(AND(ISERROR(FIND("PM",PUETATime)),ISERROR(FIND(":00",PUETATime))),IF(PUETATime="12:30 AM",PUETADate+30/(2460),IF(PUETATime="1:30 AM",PUETADate+90/(2460),IF(PUETATime="2:30 AM",PUETADate+150/(2460),IF(PUETATime="3:30 AM",PUETADate+210/(2460),IF(PUETATime="4:30 AM",PUETADate+270/(2460),IF(PUETATime="5:30 AM",PUETADate+330/(2460),IF(PUETATime="6:30 AM",PUETADate+390/(2460),IF(PUETATime="7:30 AM",PUETADate+450/(2460),IF(PUETATime="8:30 AM",PUETADate+510/(2460),IF(PUETATime="9:30 AM",PUETADate+570/(2460),IF(PUETATime="10:30 AM",PUETADate+630/(2460),IF(PUETATime="11:30 AM",PUETADate+690/(2460))))))))))))))

  5. PUETAPMHour

    =IF(AND(ISERROR(FIND("AM",PUETATime)),ISERROR(FIND(":30",PUETATime))),IF(PUETATime="12:00 PM",PUETADate+720/(2460),IF(PUETATime="1:00 PM",PUETADate+780/(2460),IF(PUETATime="2:00 PM",PUETADate+840/(2460),IF(PUETATime="3:00 PM",PUETADate+900/(2460),IF(PUETATime="4:00 PM",PUETADate+960/(2460),IF(PUETATime="5:00 PM",PUETADate+1020/(2460),IF(PUETATime="6:00 PM",PUETADate+1080/(2460),IF(PUETATime="7:00 PM",PUETADate+1140/(2460),IF(PUETATime="8:00 PM",PUETADate+1200/(2460),IF(PUETATime="9:00 PM",PUETADate+1260/(2460),IF(PUETATime="10:00 PM",PUETADate+1320/(2460),IF(PUETATime="11:00 PM",PUETADate+1380/(2460))))))))))))))

  6. PUETAPMHalfHour

    =IF(AND(ISERROR(FIND("AM",PUETATime)),ISERROR(FIND(":00",PUETATime))),IF(PUETATime="12:30 PM",PUETADate+750/(2460),IF(PUETATime="1:30 PM",PUETADate+810/(2460),IF(PUETATime="2:30 PM",PUETADate+870/(2460),IF(PUETATime="3:30 PM",PUETADate+930/(2460),IF(PUETATime="4:30 PM",PUETADate+990/(2460),IF(PUETATime="5:30 PM",PUETADate+1050/(2460),IF(PUETATime="6:30 PM",PUETADate+1110/(2460),IF(PUETATime="7:30 PM",PUETADate+1170/(2460),IF(PUETATime="8:30 PM",PUETADate+1230/(2460),IF(PUETATime="9:30 PM",PUETADate+1290/(2460),IF(PUETATime="10:30 PM",PUETADate+1350/(2460),IF(PUETATime="11:30 PM",PUETADate+1410/(2460))))))))))))))

     

    then the final date/time as calculated column named "PUETADateTime" with this formula:-

     

     

    =PUETAAMHalfHour+PUETAAMHour+PUETAPMHalfHour+PUETAPMHour

     

    i know this sound too much, but at-least when i show the managed property which is linked to the PUETADateTime" column, i will get precise value unlike having a single Date/Time field which will show the Date/Time in UTC.. is my above approach value?

    Hint, i have to create the first 4 calculated columns, instead of one calculated column, since in sharepoint online we can only have max of 19 nested IF inside single calculated column formula.

    Thanks

No RepliesBe the first to reply

Resources