如何比较obiee中的月份?
Posted
技术标签:
【中文标题】如何比较obiee中的月份?【英文标题】:How to compare month in obiee? 【发布时间】:2020-11-23 00:11:22 【问题描述】:这个case语句在obiee中怎么写?
CASE WHEN to_char(to_date(hire_dt, 'MM-DD-YYYY'), 'Month') <> to_char(to_date(start_dt-1, 'MM-DD-YYYY'), 'Month') THEN 1 Else 0
月份不等:
例子:
0 -> 09/14/2021 09/16/2021
1 -> 12/31/2019 03/15/2017
【问题讨论】:
hire_dt
和 start_dt
列的数据类型是什么?而且,您想比较月份和年份(即2020-09-14
与2019-09-16
不同的月份)还是只想比较月份(即2020-09-14
和2019-09-16
都是九月并且是同一个月)?
hire_dt 和 start_dt 的数据类型是日期。我只想比较月份。如果同月则为 0 如果不同月则为 1
但是,“同月”是什么意思?同年同月?还是任何一年的同一个月?
不要在约会时使用TO_DATE
。这会将它们隐式转换为字符串,然后将它们转换回日期,如果您的 NLS_DATE_FORMAT
会话参数与您使用的格式模型不匹配,那么您的查询将引发异常。
任何一年的同一个月。我只想比较月份而不考虑年份。
【参考方案1】:
我只想比较月份而不考虑年份。
在甲骨文中:
CASE
WHEN EXTRACT( MONTH FROM hire_dt ) = EXTRACT( MONTH FROM start_dt )
THEN 1
ELSE 0
END
或
CASE
WHEN TO_CHAR( hire_dt, 'MM' ) = TO_CHAR( start_dt, 'MM' )
THEN 1
ELSE 0
END
这个OBIEE Date functions documentation 建议你可以使用MONTH
:
CASE
WHEN MONTH( hire_dt ) = MONTH( start_dt )
THEN 1
ELSE 0
END
【讨论】:
以上是关于如何比较obiee中的月份?的主要内容,如果未能解决你的问题,请参考以下文章
什么是 obiee 中的性能调整以及我们如何解决这个问题的过程是什么?帮我举个例子,谢谢