The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Hi!
I have a time-column in Time-dimension (hours and minutes). In SQL Server, Tabular Model and PowerBI visual the time format shows in correct format 08.00, 08.01, 08.02 etc.
Like in this visual, the time-format is correct:
But in slicer things get weird..
In slicer same hour/minute-column is like this. Between-selection does not work at all.
What can I do? Between selection is mandatory.
Solved! Go to Solution.
Thanks for following up. If displaying the time with a dot or colon (like 08:30 or 08.30) inside the slicer is a must, here's the best workaround given Power BI's current limitations:
You can still use the TimeInMinutes (or a decimal field) for the slicer logic, but pair it with a display column that shows the time in the format you need. Here's how you can do it:
TimeDecimal = HOUR([YourTimeColumn]) + MINUTE([YourTimeColumn]) / 60
TimeLabel = FORMAT([YourTimeColumn], "HH:mm")
If your locale forces a comma in TimeDecimal, and you just need the label to show a dot or colon, create a custom label column:
TimeLabelDot = SUBSTITUTE(TimeLabel, ":", ".")
Then use a custom slicer visual (like Smart Filter by OKViz or HierarchySlicer) that lets you show labels but filter using the underlying value.
Power BI's built-in slicer doesn’t support formatted display with separate logic, so using a custom visual is the most flexible option here.
Best Regards,
Hammad.
Hi @tuulia,
Thanks for reaching out to the Microsoft fabric community forum.
You're right, this issue is caused by how Power BI handles time-only fields in slicers. When a column contains only time (without a date), Power BI assigns a default base date (30.12.1899), which is why you're seeing that in the slicer. Unfortunately, the "Between" slicer doesn't work well with time-only values.
The workaround by @BhavinVyas3003, suggests using a decimal column (like TimeDecimal = HOUR(...) + MINUTE(...) / 60) is technically correct, but as you noticed, the decimal separator (dot vs comma) depends on your Power BI Desktop locale. Since you're not able to change the locale settings in Power BI Service or the browser, here's a practical solution:
Try creating a new column that represents time in minutes (as a whole number). This avoids decimal separators entirely and works smoothly in a "Between" slicer.
TimeInMinutes = HOUR([YourTimeColumn]) * 60 + MINUTE([YourTimeColumn])
Then, use this column in your slicer. For visuals, you can still use your original formatted time column (FORMAT([YourTimeColumn], "HH:mm")) for display.
I would also take a moment to thank @BhavinVyas3003, for actively participating in the community forum and for the solutions you’ve been sharing in the community forum. Your contributions make a real difference.
If I misunderstand your needs or you still have problems on it, please feel free to let us know.
Best Regards,
Hammad.
Community Support Team
If this post helps then please mark it as a solution, so that other members find it more quickly.
Thank you.
Thank you! Unfortunately, a dot (or a colon) must be displayed in the timepart in slicer..
Thanks for following up. If displaying the time with a dot or colon (like 08:30 or 08.30) inside the slicer is a must, here's the best workaround given Power BI's current limitations:
You can still use the TimeInMinutes (or a decimal field) for the slicer logic, but pair it with a display column that shows the time in the format you need. Here's how you can do it:
TimeDecimal = HOUR([YourTimeColumn]) + MINUTE([YourTimeColumn]) / 60
TimeLabel = FORMAT([YourTimeColumn], "HH:mm")
If your locale forces a comma in TimeDecimal, and you just need the label to show a dot or colon, create a custom label column:
TimeLabelDot = SUBSTITUTE(TimeLabel, ":", ".")
Then use a custom slicer visual (like Smart Filter by OKViz or HierarchySlicer) that lets you show labels but filter using the underlying value.
Power BI's built-in slicer doesn’t support formatted display with separate logic, so using a custom visual is the most flexible option here.
Best Regards,
Hammad.
Thanks again, I'll try this option!
Hi @tuulia,
As we haven’t heard back from you, so just following up to our previous message. I'd like to confirm if you've successfully resolved this issue or if you need further help.
If yes, you are welcome to share your workaround and mark it as a solution so that other users can benefit as well. If you find a reply particularly helpful to you, you can also mark it as a solution.
If you still have any questions or need more support, please feel free to let us know. We are more than happy to continue to help you.
Thank you for your patience and look forward to hearing from you.
Hi @tuulia,
I wanted to check if you had the opportunity to review the information provided. Please feel free to contact us if you have any further questions. If my response has addressed your query, please accept it as a solution so that other community members can find it easily.
Thank you.
Thank you, this worked!
TimeDecimal = HOUR([YourTimeColumn]) + MINUTE([YourTimeColumn]) / 60
TimeLabel = FORMAT([YourTimeColumn], "HH:mm")
Thank you. Slicer still behaves weird
I tried to use decimal number, but locale-settings turns dot to comma. Changing locale/language in PBI service or browser is not an option. I can only do changes in PowerBI Desktop or in Tabular Model.
Is it possible to force dot to decimal numbers (instead of comma)?