Is This Year a Leap Year? A SQL Solution
Building Logic In SQL
Hello Everyone,
I have been working with SQL since the beginning of my backend journey, so I decided to improve both my and your SQL skills by solving simple problems, just as we used to do when learning programming languages like Python and others.
I will use small SQL snippets, run them to show you the output, and then combine all parts to create a complete solution.
Step 1 -> Extracting Current Year
select date_trunc('year',current_date)::date;
2024-01-01
Step 2 -> Extract First Date of Feb and March
select
(date_trunc('year',current_date) + interval '2 month')::date as march_date,
(date_trunc('year',current_date) + interval '1 month')::date as feb_date;
march_date | feb_date
------------+------------
2024-03-01 | 2024-02-01
Step 3 -> Substract Feb 1 from March 1 to get Interval of Days
select march_date - feb_date as days from (
select
(date_trunc('year',current_date) + interval '2 month')::date as march_date,
(date_trunc('year',current_date) + interval '1 month')::date as feb_date
)X ;
days
------
29
Step 4-> Use Case When to decide Leap Or Not.
select case
when ( march_date - feb_date ) = 29
then 'Leap Year'
else 'Non Leap Year'
end from (
select
(date_trunc('year',current_date) + interval '2 month')::date as march_date,
(date_trunc('year',current_date) + interval '1 month')::date as feb_date
)X ;
Leap Year
Conclusion
In this exercise, we’ve demonstrated how to determine if the current year is a leap year using a series of SQL queries. By breaking down the problem into smaller steps, we were able to:
- Extract the current year.
- Calculate the first dates of February and March.
- Determine the number of days between these dates.
- Use a
CASE
statement to decide if the year is a leap year.
You can follow Rahul Beniwal for upcoming articles because I am Planning to post such logic builders daily.
You can also check my other articles.