我的表名为t1
,其中PERIOD
列。我想找到自当前财政jun-2014
以来的月数 - 目前是11(因为它可能)。如果这种情况失败,那就做点什么。
我该如何检查:
select PERIOD from t1;
PERIOD
8/31/2014
6/30/2015
10/31/2014
1/31/2015
3/31/2015
9/30/2014
select count(PERIOD) from t1
where trunc(PERIOD)>'30-JUNE-2014';
上面查询的o / p是6,正确答案应该是11,所以condn失败。我预期的输出是条件失败时触发的东西
我不确定这是否正确。我使用11g Oracle。
答案 0 :(得分:0)
TRUNC(PERIOD)GT; '30 - 6月-2014'
'30-JUNE-2014'
是一个字符串。您正在将 DATE 与 STRING 进行比较。您需要 TO_DATE 才能将字符串转换为日期。
TRUNC
从日期截断时间部分,如果您想忽略时间部分,则应仅使用它。
您必须避免特定于语言环境的NLS_DATE_LANGUAGE依赖关系。
SELECT COUNT(PERIOD) FROM t1 WHERE PERIOD > TO_DATE('30-JUN-2014', 'DD-MON-YYYY', 'NLS_DATE_LANGUAGE=ENGLISH');