Have you ever wondered how to handle dates and times efficiently in Oracle? Oracle date and time functions are essential for performing temporal calculations and managing time-based data in your databases. This article will guide you from basic to advanced concepts, showing how to use functions such as SYSDATE, ADD_MONTHS, MONTHS_BETWEEN, TO_DATE, TO_CHAR, LAST_DAY, and others. Throughout the article, we will provide practical examples and useful tips so you can get the most out of these functions.
Introduction
Imagine that you need to calculate a payment’s due date, determine the difference in months between two dates, or convert text strings into dates and vice versa. Oracle date and time functions let you perform these tasks easily. Next, we will see how to use and combine them to obtain the desired results.
Basic Date and Time Functions
SYSDATE: System Date and Time
The SYSDATE function returns the current system date and time.
Syntax:
SELECT SYSDATE FROM dual;
Example:
SELECT SYSDATE AS fecha_actual FROM dual;
Result: Current system date and time
ADD_MONTHS: Add Months to a Date
The ADD_MONTHS function is used to add a specific number of months to a date.
Syntax:
ADD_MONTHS(fecha, meses)
Example:
SELECT ADD_MONTHS(SYSDATE, 6) AS fecha_futura FROM dual;
Result: Date six months in the future
MONTHS_BETWEEN: Difference in Months
The MONTHS_BETWEEN function calculates the difference in months between two dates.
Syntax:
MONTHS_BETWEEN(fecha1, fecha2)
Example:
SELECT MONTHS_BETWEEN('2024-12-01', '2024-01-01') AS diferencia_meses FROM dual;
Result: 11 months apart
Conversion Functions
TO_DATE: Convert Strings to Dates
The TO_DATE function converts a text string into a date.
Syntax:
TO_DATE(cadena, formato)
Example:
SELECT TO_DATE('2024-08-09', 'YYYY-MM-DD') AS fecha_convertida FROM dual;
Result: August 9, 2024
It is worth noting that we previously dedicated a complete article to the TO_DATE and TO_CHAR functions, which you can read here.
Common Formats
-
YYYY: Four-digit year -
MM: Two-digit month -
DD: Two-digit day -
HH24: 24-hour format -
MI: Minutes -
SS: Seconds
TO_CHAR: Convert Dates to Strings
The TO_CHAR function converts a date into a string.
Syntax:
TO_CHAR(fecha, formato)
Example:
SELECT TO_CHAR(SYSDATE, 'DD-MON-YYYY') AS fecha_formateada FROM dual;
Result: 09-AUG-2024
Advanced Date and Time Functions
LAST_DAY: Last Day of the Month
The LAST_DAY function returns the last day of the month for a given date.
Syntax:
LAST_DAY(fecha)
Example:
SELECT LAST_DAY('2024-02-15') AS ultimo_dia FROM dual;
Result: February 29, 2024 (leap year)
TRUNC: Truncate Dates
The TRUNC function, which we covered in more detail in a separate article, is used to truncate a date to a specific unit such as a day, month, or year.
Syntax:
TRUNC(fecha, [unidad])
Example:
SELECT TRUNC(SYSDATE, 'MM') AS primer_dia_mes FROM dual;
Result: First day of the current month
ROUND: Round Dates
The ROUND function rounds a date to the specified unit.
Syntax:
ROUND(fecha, [unidad])
Example:
SELECT ROUND(SYSDATE, 'YEAR') AS fecha_redondeada FROM dual;
Result: Date rounded to the nearest year
Tips and Best Practices
Combining Functions
You can combine several functions to perform more complex calculations.
Example:
SELECT TO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE), 1), 'YYYY-MM-DD') AS resultado_final FROM dual;
Result: Last day of the following month formatted as 'YYYY-MM-DD'
Handling Null Dates
It is important to handle null (NULL) values to avoid errors.
Example:
SELECT NVL(TO_CHAR(fecha, 'DD-MON-YYYY'), 'Unknown date') AS fecha_formateada FROM tabla;
Result: Displays 'Unknown date' when the date is null
Conclusion
Oracle date and time functions are powerful tools for handling and manipulating temporal data in your databases. From retrieving the current date and adding months to converting between strings and dates and truncating dates to specific units, these functions give you flexibility and precision in your calculations. With the examples and tips provided, you are now ready to apply these functions in your projects and improve date and time handling in Oracle.
Ready to take your date and time skills to the next level? Start practicing today and discover what you can accomplish with Oracle.

