【问题标题】:months after current fiscal当前财政年度后的几个月
【发布时间】:2015-08-10 14:51:09
【问题描述】:

我有一个名为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 甲骨文。

【问题讨论】:

    标签: sql oracle oracle11g date-arithmetic


    【解决方案1】:

    trunc(PERIOD)>'30-JUNE-2014'

    • '30-JUNE-2014' 是一个字符串。您将 DATESTRING 进行比较。您需要 TO_DATE 将字符串转换为日期。

    • TRUNC 会从日期中截断时间部分,仅当您想忽略时间部分时才应使用它。

    • 您必须避免特定于语言环境的 NLS_DATE_LANGUAGE 依赖项

    选择计数(期间) 从 t1 WHERE PERIOD > TO_DATE('30-JUN-2014', 'DD-MON-YYYY', 'NLS_DATE_LANGUAGE=ENGLISH');

    【讨论】:

    • 根据我表上的记录,我得到的计数是 12,它必须是 11。我该如何执行检查。如果 condn 失败然后做点什么
    • @user3452154 我没有你的数据。编辑您的问题并根据您的输入数据添加您的预期输出。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    • 2020-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多