Oracle中的单个月数字日期格式问题

时间:2017-08-30 06:12:26

标签: oracle date

当我使用'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

3 个答案:

答案 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的中间项从日期开始除去前导零(如果存在)。

<强>输出:

enter image description here

在这里演示:

Rextester

答案 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