我有一个非常奇怪的问题。我已经构建了一个表格模型,它从SSAS多维数据集中获取数据。在数据源多维数据集中,有一个名为“Process Date”的列,它采用英国日期格式(dd / mm / yyyy)。当我将此列添加到我的模型中时,日期会搞砸,在某些日期交换日期和月份值!
下面是用于说明这一点的图像,我用红色突出显示了一个特定的日期。在数据源SSAS多维数据集中,日期是12/02/2019,当它转到表格模型时,此日期将于02/12/2019。我在表格模型中添加了一个check_month列,发现表格模型认为它是12月,即日/月已被交换!
谢谢
JC
编辑:这已通过更改连接中的区域设置标识符来解决。请通过userfl89查看以下答案中的评论。这是因为数据源多维数据集使用的是不同的语言环境(美国英语)然后我在模型中使用的内容,更改语言环境标识符将覆盖此问题,从而解决问题
可以从SSDT定义日期格式。突出显示日期列并转到属性窗口(按F4)。对于Data Format
属性,选择所需的日期格式。如果您需要未列出的日期格式,则可以使用FORMAT
函数创建基于原始列的计算列,然后将此列的数据类型设置为Date
。下面是一个例子。此外,确认SSDT中的区域设置标识符(LCID)。可以通过选择Model> Existing Connections> Edit> Build> All>然后选择Locale Identifier属性来查看。 Microsoft documentation提供了有关识别正确LCID的详细信息。
=FORMAT('Process'[Process Date], "dd-MM-yyyy")