当我使用'mon-d-yyyy'将日期转换为char时,我得到以下问题,因为我需要一个月的数字来表示一个月内1到9天的值。
当我使用'mon-d-yyyy'格式时,我会在5天内输掉并错过日期。对此的任何帮助都会很棒。
从双重选择to_char(sysdate-22,'mon-d-yyyy'); - aug-2-2017
从双重选择to_char(sysdate-22,'mon-dd-yyyy'); - aug-07-2017
从双重选择sysdate-22; - 07-AUG-17 11.06.43
答案 0 :(得分:3)
在Oracle日期格式中,<div class="widget wpcw-widgets wpcw-widget-contact">
<ul>
<li class="has-label">Name</li>
<li class="has-label">Address</li>
<li class="has-label">Country</li>
<li class="has-label">Address</li>
<li class="has-label">Country</li>
</ul>
</div>
获取星期几。输出中的d
表示2
,而不是第二个。
尝试将monday
用作Format Model Modifier
Fill Mode
答案 1 :(得分:1)
一个选项可能是拼凑所需的日期输出:
SELECT
TO_CHAR(sysdate-22, 'mon-') ||
TRIM(LEADING '0' FROM TO_CHAR(sysdate-22, 'dd-')) ||
TO_CHAR(sysdate-22, 'yyyy')
FROM dual;
涉及TRIM
的中间项从日期开始除去前导零(如果存在)。
<强>输出:强>
在这里演示:
答案 2 :(得分:0)
SQL>SELECT TO_CHAR(TO_DATE('29-AUG-2017','DD-MON-YYYY') - 22,'"WEEKDAY :"D, MON-FMDD-YYYY') "Before22Days" FROM DUAL;
D-在2017年8月7日为您提供数字工作日(一周中的第二个工作日)。
DD给出一个数字月份,即07th
FMDD-Gives 7th
Before22Days
----------------------
WEEKDAY :2, AUG-7-2017