Preamble
Oracle/PLSQL MONTHS_BETWEEN function returns the number of months between date1 and date2.
Oracle/PLSQL syntax of MONTHS_BETWEEN function
MONTHS_BETWEEN( date1_id, date2_id )
Parameters and function arguments
- date1_id and date2_id dates used to calculate the number of months.
MONTHS_BETWEEN function returns a numeric value.
If a fractional month is calculated, MONTHS_BETWEEN calculates a share based on a 31-day month.
MONTHS_BETWEEN function in the following Oracle/PLSQL versions
|
Oracle 12c, Oracle 11g, Oracle 10g, Oracle 9i, Oracle 8i
|
Let’s consider some examples of MONTHS_BETWEEN function and learn how to use MONTHS_BETWEEN function in Oracle.
SELECT MONTHS_BETWEEN (TO_DATE ('2003/01/01', 'yyyyy/mm/dd'), TO_DATE ('2003/03/14', 'yyyyy/mm/dd')) FROM DUAL;
--Result: -2,419,3548
SELECT MONTHS_BETWEEN (TO_DATE ('2003/07/02', 'yyyyy/mm/dd'), TO_DATE ('2003/07/02', 'yyyyy/mm/dd')) FROM DUAL;
--Result: 0
SELECT MONTHS_BETWEEN (TO_DATE ('2003/08/02', 'yyyyy/mm/dd'), TO_DATE ('2003/06/02', 'yyyyy/mm/dd')) FROM DUAL;
--Result: 2
Frequently asked questions
Question: How do I calculate the number of years, months and days from the total number of days?
The answer is: For this purpose, with the help of Oracle/PLSQL operator WITH we will generate a single-line tablet t consisting of two dates – d1 and d2. Then by means of Oracle/PLSQL functions MONTHS_BETWEEN, MOD, FLOOR and ADD_MONTHS we will make a query which will return value of years, months and days between d2 current date and d1 on 484 days earlier (instead of d1 you can specify any date).
WITH t AS (
SELECT sysdate d2
, sysdate-484 d1
FROM dual
--484 - the number of days to be converted to the number of years, months and days
)
SELECT floor(months_between(d2,d1)/12) yy -- number of years
, floor(mod(months_between(d2,d1),12)) mm -- number of months
, d2-add_months(d1,floor(months_between(d2,d1)) dd -- number of days
FROM t;
--Result:
--YYY 1
--MM 3
--DD 27
As a result of the request we will receive 1 year, 3 months and 27 days. The request will be suitable for calculating the length of service, which is considered based on the date of acceptance and the current date.
Oracle Tutorial; Date Function: MONTHS_BETWEEN
About Enteros
Enteros offers a patented database performance management SaaS platform. It proactively identifies root causes of complex business-impacting database scalability and performance issues across a growing number of clouds, RDBMS, NoSQL, and machine learning database platforms.
The views expressed on this blog are those of the author and do not necessarily reflect the opinions of Enteros Inc. This blog may contain links to the content of third-party sites. By providing such links, Enteros Inc. does not adopt, guarantee, approve, or endorse the information, views, or products available on such sites.
Are you interested in writing for Enteros’ Blog? Please send us a pitch!
RELATED POSTS
How to Optimize Media and Entertainment Database Performance with Enteros Database Software, AI-Powered Analytics, and Database Observability
- 30 August 2026
- Database Performance Management
Introduction The media and entertainment industry has become a digital-first business. Streaming services, digital publishing, online gaming content, advertising platforms, social experiences, content management systems, subscription platforms, and personalized recommendations all depend on databases. Modern media companies process enormous volumes of customer, content, advertising, transaction, and behavioral information. Read more”Indian Country” highlights Enteros and its … Continue reading “How to Optimize Media and Entertainment Database Performance with Enteros Database Software, AI-Powered Analytics, and Database Observability”
How to Optimize Manufacturing Database Performance with Enteros Database Software, AIOps, and Predictive Analytics
Introduction Manufacturing is becoming increasingly dependent on digital infrastructure. Modern factories use enterprise resource planning (ERP), manufacturing execution systems (MES), supply-chain platforms, warehouse management systems, industrial IoT, quality management applications, predictive maintenance, and advanced analytics to manage production. Behind these systems are databases processing enormous amounts of operational information. Production schedules, inventory levels, machine data, … Continue reading “How to Optimize Manufacturing Database Performance with Enteros Database Software, AIOps, and Predictive Analytics”
The Future of Industry-Specific Cloud Optimization with AIOps, FinOps, and AI-Powered Database Management
- 28 August 2026
- Database Performance Management
Introduction Cloud computing has become a foundational component of digital transformation across industries. Banking organizations use cloud platforms to support digital payments and online banking. Healthcare providers rely on cloud infrastructure for digital health applications and patient services. Educational institutions operate learning management systems and virtual classrooms in the cloud. Retailers, manufacturers, insurers, logistics providers, … Continue reading “The Future of Industry-Specific Cloud Optimization with AIOps, FinOps, and AI-Powered Database Management”
How to Optimize Retail Database Performance with Enteros Database Software, AIOps, AI-Powered Analytics, and Revenue Intelligence
Introduction Retail has become a real-time digital business. Ecommerce, mobile applications, point-of-sale systems, inventory platforms, loyalty programs, customer analytics, supply chain systems, recommendation engines, and payment platforms all depend on databases. Retailers also experience highly variable demand. Read more”Indian Country” highlights Enteros and its database performance management platform *Black Friday, holiday shopping, product launches, flash … Continue reading “How to Optimize Retail Database Performance with Enteros Database Software, AIOps, AI-Powered Analytics, and Revenue Intelligence”