gah.
Why is some of this stuff so challenging in Tableau? You have a date and you want to format it as a string? Why? So you can concatenate it with another string perhaps? Maybe you’re creating a calculated field to use in a label (that’s what I was doing).
Unfortunately, when you convert a datetime to a string in Tableau it uses the format yyyy-mm-dd hh:mm:ss. Fine for a lot of cases, not fine for a lot of cases.
Being the purveyor of fine calculated measures I created this wonderful calc to convert a datetime to a string in the format: mm/dd/yyyy hh:mm AM/PM. Are you looking for the same thing with time removed (mm/dd/yyyy)? No problem! That’s here too!
If you want your string date in the format mm/dd/yyyy hh:mm AM/PM create a calculated field as follows:
//Format date as string mm/dd/yyy str(datepart('month',[Power Reconnect Date Time]))+'/' +str(datepart('day',[Power Reconnect Date Time]))+'/' +str(datepart('year',[Power Reconnect Date Time])) //add hh:mm AM/PM //build hour (special logic to show 12 hour time instead of 24 hour) +' ' + if datepart('hour',[Power Reconnect Date Time]) > 12 then str(datepart('hour',[Power Reconnect Date Time])-12) //After 12pm ELSEIF datepart('hour',[Power Reconnect Date Time]) = 0 //12am (midnight) then '12' ELSE str(datepart('hour',[Power Reconnect Date Time])) // 1am to 12pm END //build minute +':' + if datepart('minute',[Power Reconnect Date Time])<10 then '0'+str(datepart('minute',[Power Reconnect Date Time])) ELSE str(datepart('minute',[Power Reconnect Date Time])) END //add AM/PM +' ' +if datepart('hour',[Power Reconnect Date Time]) >= 12 then 'PM' else 'AM' END
Do you only want mm/dd/yyyy? No problema! The same formula with the last section removed will do it:
//Format date as string mm/dd/yyy str(datepart('month',[Your Date Time]))+'/' +str(datepart('day',[Your Date Time]))+'/' +str(datepart('year',[Your Date Time]))
Got another format you’re looking for? Ask and you shall receive! Post a comment and I’ll add it to the article. Together we can make Tableau a better place. 😉