

decode(to_char(request_date, 'DAY'),'星期天',request_date - 1,'星期日',request_date - 1,'SUNDAY',request_date - 1,'7',request_date - 1,request_date)


TO_DATE 和 TO_CHAR
HH HH12 | |
YYYY YYY YY Y |
SQL> SELECT to_char(SYSDATE, 'yyyy"年"mm"月"dd"日" amhh:mi:ss') str_time2 ,to_char(SYSDATE, 'day') str_day3 ,to_char(SYSDATE, 'd') num_day4 ,to_char(SYSDATE, 'month') str_month5 FROM dual;STR_TIME STR_DAY NUM_DAY STR_MONTH-------------------------------- ------------ ------- ---------2020年09月14日 下午09:44:35 星期一 2 9月
观察上例我们发现,在日期转字符串时,AM 和 PM 其实都是在要求函数给出日期变量的上下午,而在字符串转日期时,AM 和 PM 实际发挥着说明十二小时制的小时数代表上午还是下午,尤其是 0~12 点,系统一般默认为二十四小时制,此时如果字符串中实际是十二小时制的下午时间,一定要指明 PM
SQL> SELECT to_char(SYSDATE, 'day', 'nls_date_language = japanese') jap_day2 ,to_char(SYSDATE, 'month', 'nls_date_language = american') ame_month3 FROM dual;JAP_DAY AME_MONTH------------ ------------------------------------月曜日 september

ADD_MONTHS 和 MONTHS_BETWEEN
SQL> SELECT add_months(SYSDATE, 1) add_1, add_months(SYSDATE, -0.5) diff_0d52 FROM dual;ADD_1 DIFF_0D5-------------------- --------------------2020/10/14 22:01:38 2020/9/14 22:01:38
months_between 则是用以计算两个日期类型量之间相差的月份数
SQL> SELECT months_between(:l_feb_15th_12, :l_dec_31st_0) mb2 ,(:l_feb_15th_12 - :l_dec_31st_0) 31 mb23 FROM dual;MB MB2---------- ----------1.5 1.5l_feb_15th_12---------2020/2/15 12:00:00l_dec_31st_0---------2019/12/31

NEXT_DAY
SQL> SELECT to_char(SYSDATE, 'day') str_day2 ,to_char(SYSDATE, 'd') str_d3 ,next_day(SYSDATE, '星期一') nd4 ,next_day(SYSDATE, 3) nd25 FROM dual;STR_DAY STR_D ND ND2------------ ----- -------------------- --------------------星期一 2 2020/9/21 22:12:50 2020/9/15 22:12:50SQL> --查看当前的NLS_DATE_LANGUAGE参数SQL> SELECT *2 FROM nls_session_parameters3 WHERE parameter = 'NLS_DATE_LANGUAGE';PARAMETER VALUE-------------------- --------------------NLS_DATE_LANGUAGE SIMPLIFIED CHINESESQL> SELECT next_day(SYSDATE, 'MONDAY') FROM dual;SELECT next_day(SYSDATE, 'MONDAY') FROM dualORA-01846: 周中的日无效

LAST_DAY
SQL> SELECT last_day(SYSDATE) end_of_month FROM dual;END_OF_MONTH--------------------2020/9/30 22:25:06
(未完待续)

文章转载自SQL干货分享,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




