20

たとえば、指定された日付が04/04/1924で、1924 年の 2 月の最終日を調べたいとします。

add_month を思いつきましたが、データ ソースと異なる月がある場合は柔軟ではないようです

良いアイデアはありますか?

4

7 に答える 7

3

inpl sql をクエリして、月の最初の日と最後の日を取得します。

初日 :

select to_date(to_char(LAST_DAY(sysdate),'YYYYMM'),'YYYYMM')  from dual;

最終日:

select LAST_DAY(to_date(to_char((sysdate),'YYYYMM'),'YYYYMM'))  from dual;
于 2015-02-26T06:49:55.177 に答える
0

あなたの日付が最終マウントかどうか知りたい場合

SELECT
case when
TO_DATE('19240430','YYYYMMDD') = LAST_DAY(TO_DATE('04/04/1924','MM/DD/YYYY'))
THEN 1 ELSE 0 END LAST_MOUNTH_DAY FROM DUAL
于 2014-02-26T11:43:27.857 に答える
0

これにより、月の最終日が表示されます

SELECT  Max(LAST_DAY(ADD_MONTHS(SYSDATE, -2)) + level)
FROM    dual
CONNECT BY
    level <= LAST_DAY(ADD_MONTHS(SYSDATE, -1)) - LAST_DAY(ADD_MONTHS(SYSDATE, -2))

システム日付をいつでも to_date('04/04/1924','MM-DD-YYYY') で置き換えることができます

SELECT  Max(LAST_DAY(ADD_MONTHS(to_date('04/04/1924','MM-DD-YYYY'), -2)) + level)
FROM    dual
CONNECT BY
    level <= LAST_DAY(ADD_MONTHS(to_date('04/04/1924','MM-DD-YYYY'), -1)) - LAST_DAY(ADD_MONTHS(to_date('04/04/1924','MM-DD-YYYY'), -2))

または単に

select LAST_DAY(ADD_MONTHS(to_date('04/04/1924','MM-DD-YYYY'), -2)) from dual;
于 2013-03-16T03:56:50.900 に答える