Oracle 存储过程中的细节-日期处理

php中文网
发布: 2016-06-07 17:22:50
原创
1135人浏览过

今天在存储过程中用 to_char来查询制定日期是星期几,本以为时没什么问题的,结果出现了自己不想要的问题。 select to_char(sysd

今天在存储过程中用 to_char来查询制定日期是星期几,本以为时没什么问题的,结果出现了自己不想要的问题。

select to_char(sysdate,'day','NLS_DATE_LANGUAGE=AMERICAN') day

into v_day

from dual ;

注意:返回值是英文,比如:saturday,sunday

在v_day中,,调试后发现竟然后空格,存储过程中的细节之一就是字符串变量还是统一用trim来处理下,其实加trim处理不怎么影响性能的

另外参数'NLS_DATE_LANGUAGE=AMERICAN' 适合在不同点数据库编码字符集中使用,如果不加,默认会显示中文的星期几:

SQL> select to_char(sysdate,'day') from dual;

TO_CHAR(SYSDATE,'DAY')
----------------------
星期五

下面补充一些其他的to_char实现的日期相关的用途:

1.--取得当前日期是本月的第几周:

SQL> select to_char(sysdate,'W') T from dual;
T
-
4

2.--取得当前日期是一个星期中的第几天,注意星期日是第一天

SQL> select sysdate,to_char(sysdate,'D') T from dual;

SYSDATE T
---------------------------- -
2012-11-23 10:11:52 6

3. -- 得到小时的具体数值
SQL> select trunc(sysdate) + 1/24 from dual;

TRUNC(SYSDATE)+1/24
-------------------
2012-11-23 1:00:00

4. 得到一年的每一天
select trunc(sysdate, 'yyyy') + rn - 1 date0
from (select rownum rn from all_objects where rownum

5.返回当前月的最后一天
select last_day(sysdate) from dual;
select last_day(trunc(sysdate)) from dual;
select trunc(last_day(sysdate)) from dual;
select trunc(add_months(sysdate,1),'mm') - 1 from dual;

6.获取本周一,周日的日期
select trunc(sysdate,'d')+1,trunc(sysdate,'d')+7 from dual;

7.判断某一日子所在年分是否为润年
select decode(to_char(last_day(trunc(sysdate,'y')+31),'dd'),'29','闰年','平年') from dual;

8.判断两年后是否为润年
select decode(to_char(last_day(trunc(add_months(sysdate,24),'y')+31),'dd'),'29','闰年','平年') from dual;

9.得到日期的季度
select ceil(to_number(to_char(sysdate,'mm'))/3) from dual;
select to_char(sysdate, 'Q') from dual;

类似:

select to_char(sysdate,'yyyy') from dual; --年
select to_char(sysdate,'Q' from dual; --季
select to_char(sysdate,'mm') from dual; --月
select to_char(sysdate,'dd') from dual; --日
ddd 年中的第几天
WW 年中的第几个星期
W 该月中第几个星期

linux

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号