Oracle 日期函数操作一问 不知道有没有更好办法不过通过to_cahr可以返回季度数如select to_cahr(sysdate,'q') from dual 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 declarev_date number;select to_char(sysdate,'Q') into v_date from dual;if v_date = 1 then...elseif v_date = 2 then...... end if 转贴: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 里,它总是 用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 对,三千兄那样:select * from table_name where dtCreationDate<trunc(sysdate,'q'); KingSunSha's method works magically. 怎么给分? plsql怎么导入dmp文件啊?我使用的是Oracle10 如何使用sqlloader导入xml文件到Oracle数据库? java 远程连接Oracle 必须装客户端吗? 请教 关于Oracle存储过程的问题 netca 无法运行 关于修改数据文件大小的问题? 怎么样用脚本让一条语句执行自己想要的次数呀(在线等待) oracle用户 以internal登录,出现insufficent priviledge 如何把oracle所有用户建的表结构导出到*.sql的文件里面? 谁有powerDesigner的电子书? 语法问题
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
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 里,它总是
---------------- ----------------
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
select * from table_name where dtCreationDate<trunc(sysdate,'q');