不知道有没有更好办法
不过通过to_cahr可以返回季度数
如select to_cahr(sysdate,'q') from dual

解决方案 »

  1.   

    declare
    v_date number;
    select to_char(sysdate,'Q') into v_date from dual;
    if v_date = 1 then
    ...
    elseif v_date = 2 then
    ...
    ... 
    end if
      

  2.   

    转贴:to_char(datetime, text)  text  把datetime 转换成 string  to_char('now'::datetime, 'HH12:MI:SS')  
    to_char(timestamp, text)  text  把 timestamp 转换成 string  to_char( now(), 'HH12:MI:SS')  
    to_char(int, text)  text  把 int4/int8 转换成 string  to_char(125, '999')  
    to_char(float, text)  text  把 float4/float8 转换成 string  to_char(125.8, '999D9')  
    to_char(numeric, text)  text  把 numeric 转换成 string  to_char(-125.8, '999D99S')  
    表 5-7. 用于日期/时间 to_char() 版本的Format-pictures。Format-picture 描述 
    HH  一天中的小时 (01-12)  
    HH12  一天中的小时 (01-12)  
    MI  分钟 (00-59)  
    SS  秒 (00-59)  
    SSSS  过了午夜的秒 (0-86399)  
    Y,YYY  带逗号的年 (4 或更多位) 
    YYYY  年 (4 或更多位) 
    YYY  年的最后三位 
    YY  年的最后两位 
    Y  年的最后一位 
    MONTH  完整的月份名(9字符)-所有字符大写 
    Month  完整的月份名(9字符)-首字符大写 
    month  完整的月份名(9字符)-所有字符小写 
    MON  缩写的月份名(3字符)-所有字符大写 
    Mon  缩写的月份名(3字符)-首字符大写 
    mon  缩写的月份名(3字符)-所有字符小写 
    MM  月份(01-12)  
    DAY  完整的日期名(9字符)-所有字符大写 
    Day  完整的日期名(9字符)-首字符大写 
    day  完整的日期名(9字符)-所有字符小写 
    DY  缩写的日期名(3字符)-所有字符大写 
    Dy  缩写的日期名(3字符)-首字符大写 
    dy  缩写的日期名(3字符)-所有字符小写 
    DDD  一年中的日子 (001-366)  
    DD  一月中的日子 (01-31)  
    D  一周中的日子 (1-7; SUN=1)  
    W  月中的周 
    WW  年中的周 
    CC  世纪(两位) 
    J  julian 日子(从4712 BC 年一月一日以来的日子)  
    Q  季度 
    RM  罗马数字的月份 (I-XII; I=JAN)  所有 format-pictures (格式图)允许使用后缀(后缀/前缀)。对于近似 format-picture(格式图),后缀总是有效的。'FX'只是全局前缀。表 5-8. 用于日期/时间 to_char() 版本的 format-pictures (格式图)后缀。后缀 描述 例子 
    FM  填充模式-前缀 FMMonth  
    TH  大写顺序数-前缀 DDTH  
    th  小写顺序数-后缀 DDTH  
    FX  FX - (固定模式)全局 format-picture (格式图)开关。如果没有使用这个选项 TO_DATETIME / TO_DATE 忽略空白。必须作为formt-picture(格式图)里的第一个项目使用。 FX Month DD Day  
    SP  拼写模式(目前未实现) DDSP  '\' - 必须用做双 \\,例如 '\\HH\\MI\\SS' '"' - 双引号之间的字串被忽略并且不被分析。如果你想向输出写 '"' 你必须用 \\",例如 '\\"YYYY Month\\"'。text - PostgreSQL 的 to_char() 支持不带 '"' 的文本,但是带有双引号的字串会快些并且可以保证该文本不会被解释成关键字(format-picture,格式图),例如 '"Hello Year: "YYYY'。表 5-9. 用于数字 (int/float/numeric) to_char() 版本的Format-pictures (格式图)。格式图 描述 
    9  返回指定位数的值,如果不够位数用空白代替 
    0  象 9 一样,但是把空白替换成零 
    . (句点)  小数点 
    , (逗号)  分组(千进)分隔符 
    PR  在尖括号内返回负数 
    S  用负号返回负数(使用本地) 
    L  货币符号(使用本地) 
    D  小数点(使用本地) 
    G  分组符(使用本地) 
    MI  在指定位置返回负号(如果数字 < 0) 
    PL  在指定位置返回正号(如果数字 > 0) PostgreSQL 扩展 
    SG  在指定位置返回正/负号(如果数字 < 0) - PostgreSQL 扩展 
    RN  返回数字的罗马数字(数字必须介于1 和 3999之间) 
    TH 或th  把数字转换成自然数(如果是负数或小数不转换) - PostgreSQL 扩展 
    V  arg1 * (10 ^ n);- 返回一个乘以 10^n (这里 'n' 是'V'后面的数字 '9')。to_char() 不支持同时使用 'V' 和小数点,如 "99.9V99"。 
    EEEE  科学记数,目前不支持。 注意:通过A sign formatted via 'SG','PL' 或 'MI' 格式化的符号数不一定是数字;to_char(-12, 'S9999')生成: '  -12' 
    ,但是 to_char(-12, 'MI9999')生成: '-  12' 
    。Oracle 不允许在 '9' 前面使用 'MI',在 Oracle 里,它总是
      

  3.   

    用trunc()函数,trunc(mydate,'Q')返回mydate所属的季节的第一天。SQL> select sysdate,trunc(sysdate,'Q') from dual;SYSDATE          TRUNC(SYSDATE,'Q
    ---------------- ----------------
    2003-02-17-08:13 2003-01-01-00:00SQL> select trunc(to_date('4/3/03','MM/DD/YY'),'Q') from dual;TRUNC(TO_DATE('4
    ----------------
    2003-04-01-00:00
      

  4.   

    对,三千兄那样:
    select * from table_name where dtCreationDate<trunc(sysdate,'q');
      

  5.   

    KingSunSha's method works magically. 怎么给分?