【问题标题】:Converting a Date Format to YYYYMM in Cognos Report Studio在 Cognos Report Studio 中将日期格式转换为 YYYYMM
【发布时间】:2018-09-24 21:44:55
【问题描述】:

我有一个格式为12 May, 2014 的日期列,我想将其转换为yyyymm/ 201405 格式。 我尝试了多种选择,例如

extract(year, sys_date)*100 + extract(month, sys_date))*100
cast(extract( year, sys_date), varchar(4)) + cast(extract( month, sys_date), varchar(2))

这个有效,但以YYY,YMM 格式返回我。

CAST(to_char(sys_date, 'YYYYMM'), INT )

对于以上两个,报错:

 An error occurred while performing operation 'sqlOpenResult' status='-28'

有人可以指导一下。先感谢您。

【问题讨论】:

  • 不要在 SQL 中更改它。使用报告单元格本身来选择显示格式。
  • @Zane:你能详细说明一下吗?我刚刚开始在 Cognos 工作几天,所以无法理解您的意思。谢谢
  • 您是在列中还是在图表中显示这些日期?
  • 我希望它在一个列中
  • 选择报告中的列。在左侧的属性窗格中,您可以修改格式。单击数据格式字段,选择类型为日期。然后你可以随意格式化它。

标签: sql datetime cognos cognos-8 cognos-10


【解决方案1】:

我得到了我想要的东西。这就是我所做的:

translate(CAST(to_char(sys_date, 'YYYYMM'), varchar(6) ), ',' , ' ')

我相信会有更好的方法来获得结果,但现在我会使用这个 SQL,因为它给了我想要的 :)

【讨论】:

  • 是的,我可以这样做,但我希望该字段不在最终报告中,而是在内部执行一些计算和连接。
  • 是的,但是如果您使用该列进行连接,为什么要更改日期格式?
  • 我加入的列是 'YYYYMM' 格式。因此必须在内部将其更改为该格式。
  • 我认为你是倒着做的。内部表示应始终是时间数据(如日期值)。 “格式”是演示方面的东西。如果我想要牛排,我会得到牛排,我不会尝试将汉堡包重新组装成牛排的形状。
  • 那么为什么不修复不在 DATE 数据类型中的那个。这就像如果你有一个爆胎,而不是换上一个新轮胎,你把另一个轮胎弄扁了,这样它就可以骑了。
【解决方案2】:

我就是这么做的。

substring(cast(substring(cast([sys_date];char(7));1;4)||substring(cast([sys_date];char(7));6;2);char(6));1;6 )

对我来说工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    • 2017-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多