在 Cognos Report Studio 中将数据类型为整数的列转换为日期

Convert a column that has a data type of integer into date in Cognos report studio

我有一列是这样的,数据类型是整型。我从 AS400 服务器获取数据,这就是它使用整数数据类型的原因。日期格式表示为 YYYYMMDD

在 report studio 中,我创建了一个数据项,可将此整数列转换为日期时间。但是失败了。

我尝试了很多不同的方法,但其中 none 有效。

cast([WCPDOD], 'YYYYMMDD')

cast([WCPDOD], 日期) UDA-SQL-0219 函数 "to_date" 正在用于本地处理,但是 不可用作内置函数,或者至少其参数之一不是 supported.RSV-SRV-0042

cast([WCPDOD], YYYY-MM-DD)

cast([WCPDOD], datetime)

cast_timestamp([WCPDOD], 日期时间)

cast_timestamp([WCPDOD], 日期)

cast_integer([WCPDOD], 日期)

有人可以帮我解决这个问题吗?我的目标是至少让这个 20150729 进入这个 07/29/2015

在SQL服务器中,您可以将整数字段转换为varchar,然后转换为日期,然后使用日期样式101实现您想要的格式:

DECLARE @datevalue int = '20150729';

SELECT convert(varchar(10),cast(cast(@datevalue AS varchar(10)) as date), 101);

首先,将您的 10 位整数转换为字符串:

数据项2

cast([Data Item1],varchar(10))

接下来,使用子字符串提取日期组件并构建日期字符串:

数据项3

substring([Data Item2],1,4) + '-' + substring([Data Item2],5,2) + '-' + substring([Data Item2],7,2)

最后,将结果字符串转换为日期格式:

数据项4

cast([Data Item3],date)

当然,这一切都可以在一个表达式中完成,但为了清楚起见,我在这里将其分解。