当前财政后几个月

时间:2015-05-28 08:10:39

标签: sql oracle oracle11g date-arithmetic

我的表名为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。

1 个答案:

答案 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');