20

例如,给定日期是04/04/1924,我想找出 1924 年 2 月的最后一天。

我想出了 add_month 但如果我的给定月份与数据源不同,它似乎不灵活

有什么好主意吗?

4

7 回答 7

42

甲骨文有一个last_day()功能:

SELECT LAST_DAY(to_date('04/04/1924','MM/DD/YYYY')) from dual;

SELECT LAST_DAY(ADD_MONTHS(to_date('04/04/1924','MM/DD/YYYY'), -1)) from dual;

SELECT LAST_DAY(ADD_MONTHS(to_date('04/04/1924','MM/DD/YYYY'), -2)) from dual;

结果:

April, 30 1924 00:00:00+0000

March, 31 1924 00:00:00+0000

February, 29 1924 00:00:00+0000

在您的日期上使用Add_Months()以获得适当的月份,然后应用last_day().

于 2013-03-16T03:48:32.463 回答
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  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 回答
0

获取所选月份和年份的最后一天:

从 DUAL 中选择 TO_CHAR(LAST_DAY(TO_DATE(:X_THE_MONTH ||'/01/' || :X_THE_YEAR,'MM/DD/YYYY')),'dd')

于 2014-02-12T08:47:01.243 回答
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
  to_date('01/'|| '07/' || to_char(sysdate, 'YYYY'), 'dd/mm/yyyy') first,
  last_day(to_date('01/'|| '07/' || to_char(sysdate, 'YYYY'), 'dd/mm/yyyy')) last
  from  dual

结果:

first         last
-------------------------- 
01/02/2017  28/02/2017
于 2017-07-24T07:19:08.603 回答
0

简单的方法是:

select first_name , last_day(hire_date) from employees;

我正在使用 HR 模式...您可以获得上述月份的最后一天。

于 2020-01-21T06:36:54.217 回答