Power BI中公历转Shamsi日期的正确公式写法咨询
在Power BI中将公历日期转换为波斯历(Shamsi)的解决方案
Power BI的DAX语法和SQL Server存在差异,你可以通过以下两种方法实现转换:
方法1:修正DAX的FORMAT函数用法
DAX里的参数分隔符是逗号(,)而非分号(؛),且波斯历对应的区域标识建议用fa-IR,修改后的公式如下:
FORMAT('fire Fires'[Acceptance Letter Date], "dd/MM/yyyy", "fa-IR")
如果需要显示纯波斯数字,也可以直接用fa作为区域参数:
FORMAT('fire Fires'[Acceptance Letter Date], "dd/MM/yyyy", "fa")
注意:若Power BI环境未安装波斯语语言包,需先安装对应语言包才能生效。
方法2:自定义DAX函数(兼容特殊场景)
如果上述方法失效,可手动编写转换逻辑,示例如下:
GregorianToShamsi = VAR GregorianDate = 'fire Fires'[Acceptance Letter Date] VAR YearG = YEAR(GregorianDate) VAR MonthG = MONTH(GregorianDate) VAR DayG = DAY(GregorianDate) VAR ShamsiYear = YearG - 621 VAR ShamsiMonth = MonthG - 3 RETURN IF( MonthG <= 3, (ShamsiYear - 1) & "/" & (ShamsiMonth + 12) & "/" & DayG, ShamsiYear & "/" & ShamsiMonth & "/" & DayG )
这个基础转换适用于常规日期,闰年等复杂场景需要补充更精细的判断逻辑。
内容的提问来源于stack exchange,提问作者user3287242
相关产品推荐
相关产品推荐

