最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-09 11:07:01
文档

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

Oracle存储过程中的细节-日期处理:今天在存储过程中用 to_char来查询制定日期是星期几,本以为时没什么问题的,结果出现了自己不想要的问题。 select to_char(sysd 今天在存储过程中用 to_char来查询制定日期是星期几,本以为时没什么问题的,结果出现了自己不想要的问题。 select
推荐度:
导读Oracle存储过程中的细节-日期处理:今天在存储过程中用 to_char来查询制定日期是星期几,本以为时没什么问题的,结果出现了自己不想要的问题。 select to_char(sysd 今天在存储过程中用 to_char来查询制定日期是星期几,本以为时没什么问题的,结果出现了自己不想要的问题。 select


今天在存储过程中用 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 < 366);

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 该月中第几个星期

文档

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

Oracle存储过程中的细节-日期处理:今天在存储过程中用 to_char来查询制定日期是星期几,本以为时没什么问题的,结果出现了自己不想要的问题。 select to_char(sysd 今天在存储过程中用 to_char来查询制定日期是星期几,本以为时没什么问题的,结果出现了自己不想要的问题。 select
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top