Calculating... until our next FREE Code-Along Session. Secure your spot now

SQL GETDATE (): Quick & Easy Explanation

Ryan Forrester
Jun 26th, 2024
Blog

What is the SQL GETDATE() Function?

The SQL GETDATE() function is a handy tool that pulls the current date and time from your server’s system clock. It’s super useful when you need to timestamp records, compare data based on the current time, or simply log when certain actions occur in your database.

In other SQL languages, you might come across similar functions like CURRENT_TIMESTAMP or NOW(). These work the same way as GETDATE(), giving you the current date and time no matter which SQL platform you’re using. This consistency makes it easier to write code that can work across different database systems.


SQL GETDATE() Syntax Explained

The syntax for GETDATE() varies slightly across different SQL databases, but its purpose remains the same: to return the current date and time. Here’s how you can use it in different SQL environments:

SQL Server

In SQL Server, GETDATE() is straightforward with no parameters required.

SELECT GETDATE();

MySQL

In MySQL, the equivalent function is NOW(). It also doesn’t require any parameters.

SELECT NOW();

PostgreSQL

PostgreSQL uses CURRENT_TIMESTAMP to achieve the same result.

SELECT CURRENT_TIMESTAMP;

Oracle

In Oracle, you use SYSDATE to get the current date and time.

SELECT SYSDATE FROM dual;

While these functions typically don’t have optional parameters, they can be used in various contexts within your queries to enhance data handling based on the current date and time.


Build a Web App On Using Your Database

If you’re exploring SQL functions like GETDATE(), you’re likely already familiar with the basics of querying and manipulating SQL data. But what if there was a way to build, test, and deploy data-driven applications faster? This is what Five is great at.

Five is designed to simplify the development of modern, data-driven applications. It seamlessly integrates with databases such as MySQL and SQL Server, allowing you to build robust, cloud-based applications directly on top of your relational database.

1. SQL Management: Five allows you to manage your SQL databases more efficiently. With its intuitive interface, you can easily create, modify, and query databases. Whether you’re using SQL Server or MySQL.

2. Visual Query Builder: While you might enjoy writing SQL queries manually (which you can do easily in Five), but there are times when a visual query builder can save you a lot of time and effort. Five’s visual query builder lets you construct complex queries with simple drag-and-drop actions, making it easier to visualize relationships and join tables.

3. Advanced Data Manipulation: Functions like GETDATE() are just the beginning. Five enables you to perform data manipulations and date calculations with ease. Whether you’re generating reports, scheduling tasks, or filtering data, Five provides the tools to handle it all.

4. Integrated Development Environment: Five isn’t just about querying data; it’s about building modern applications. You can create forms, charts, reports plus lots more. This approach means you spend less time switching between tools and more time developing robust applications.

5. Custom Business Logic: Need to extend your application’s functionality? Five allows you to write custom JavaScript and TypeScript functions. This flexibility ensures that you can implement complex business logic and tailor your application to meet specific needs.

6. Easy Deployment: Once your application is ready, Five makes deployment easy. You can deploy your application to a secure, scalable cloud infrastructure with just a few clicks. This means you can focus on developing your application without worrying about the complexities of deployment.

If you’re serious about working with SQL give Five a try. Sign up for free access to Five’s development environment and start building your next web application.


Build Your Web App in 4 Steps
Bring/Create Your Own Database and Start Developing




SQL GETDATE() Usage Scenarios

3.1. Basic Usage

GETDATE() is often used to retrieve the current date and time. Here are a few simple examples to illustrate its basic usage:

SQL Server:

SELECT GETDATE() AS CurrentDateTime;

MySQL:

SELECT NOW() AS CurrentDateTime;

PostgreSQL:

SELECT CURRENT_TIMESTAMP AS CurrentDateTime;

Oracle:

SELECT SYSDATE AS CurrentDateTime FROM dual;

3.2. Date Manipulation

You can use GETDATE() to manipulate dates, such as calculating future or past dates. Here are some examples:

SQL Server:
To add 7 days to the current date:

SELECT DATEADD(day, 7, GETDATE()) AS FutureDate;

To subtract 30 days from the current date:

SELECT DATEADD(day, -30, GETDATE()) AS PastDate;

MySQL:
To add 7 days to the current date:

SELECT NOW() + INTERVAL 7 DAY AS FutureDate;

To subtract 30 days from the current date:

SELECT NOW() - INTERVAL 30 DAY AS PastDate;

PostgreSQL:
To add 7 days to the current date:

SELECT CURRENT_TIMESTAMP + INTERVAL '7 days' AS FutureDate;

To subtract 30 days from the current date:

SELECT CURRENT_TIMESTAMP - INTERVAL '30 days' AS PastDate;

Oracle:
To add 7 days to the current date:

SELECT SYSDATE + 7 AS FutureDate FROM dual;

To subtract 30 days from the current date:

SELECT SYSDATE - 30 AS PastDate FROM dual;

3.3. Filtering Data

GETDATE() is also useful in WHERE clauses to filter records based on the current date and time. Here are some examples:

SQL Server:
To filter records created today:

SELECT * FROM Orders
WHERE CAST(OrderDate AS DATE) = CAST(GETDATE() AS DATE);

MySQL:
To filter records created in the last 7 days:

SELECT * FROM Orders
WHERE OrderDate >= NOW() - INTERVAL 7 DAY;

PostgreSQL:
To filter records created in the current month:

SELECT * FROM Orders
WHERE EXTRACT(MONTH FROM OrderDate) = EXTRACT(MONTH FROM CURRENT_TIMESTAMP)
AND EXTRACT(YEAR FROM OrderDate) = EXTRACT(YEAR FROM CURRENT_TIMESTAMP);

Oracle:
To filter records created in the last 30 days:

SELECT * FROM Orders
WHERE OrderDate >= SYSDATE - 30;

By understanding and applying these scenarios, you can effectively use GETDATE() and its equivalents to handle date and time operations in your SQL queries.


Practical Examples of SQL GETDATE

Using GETDATE() and its equivalents can be incredibly useful in real-world SQL queries, especially in contexts like reporting and scheduling. Here are some practical examples:

4.1. Reporting

Generating reports often involves filtering data based on the current date and time.

SQL Server:
To generate a daily sales report:

SELECT 
    ProductID, 
    SUM(Quantity) AS TotalQuantity, 
    SUM(TotalPrice) AS TotalSales
FROM 
    Sales
WHERE 
    CAST(SaleDate AS DATE) = CAST(GETDATE() AS DATE)
GROUP BY 
    ProductID;

MySQL:
To generate a monthly sales report:

SELECT 
    ProductID, 
    SUM(Quantity) AS TotalQuantity, 
    SUM(TotalPrice) AS TotalSales
FROM 
    Sales
WHERE 
    YEAR(SaleDate) = YEAR(NOW())
    AND MONTH(SaleDate) = MONTH(NOW())
GROUP BY 
    ProductID;

PostgreSQL:
To generate a yearly sales report:

SELECT 
    ProductID, 
    SUM(Quantity) AS TotalQuantity, 
    SUM(TotalPrice) AS TotalSales
FROM 
    Sales
WHERE 
    EXTRACT(YEAR FROM SaleDate) = EXTRACT(YEAR FROM CURRENT_TIMESTAMP)
GROUP BY 
    ProductID;

Oracle:
To generate a weekly sales report:

SELECT 
    ProductID, 
    SUM(Quantity) AS TotalQuantity, 
    SUM(TotalPrice) AS TotalSales
FROM 
    Sales
WHERE 
    SaleDate >= TRUNC(SYSDATE, 'IW') 
    AND SaleDate < TRUNC(SYSDATE, 'IW') + 7
GROUP BY 
    ProductID;

4.2. Scheduling

Scheduling tasks often requires using the current date and time to set up intervals or triggers.

SQL Server:
To schedule a task that runs at the beginning of each month:

DECLARE @NextRunDate DATETIME;
SET @NextRunDate = DATEADD(month, DATEDIFF(month, 0, GETDATE()) + 1, 0);

-- Example usage: Setting up a job
EXEC sp_add_job @job_name = 'MonthlyJob';
EXEC sp_add_jobstep @job_name = 'MonthlyJob', @step_name = 'Step1', @command = 'EXEC YourProcedure';
EXEC sp_add_jobschedule @job_name = 'MonthlyJob', @schedule_name = 'MonthlySchedule', @freq_type = 1, @active_start_date = @NextRunDate;

MySQL:
To create an event that runs every day at midnight:

CREATE EVENT DailyEvent
ON SCHEDULE EVERY 1 DAY
STARTS CURRENT_TIMESTAMP + INTERVAL 1 DAY
DO
BEGIN
    -- Your SQL statements here
END;

PostgreSQL:
To schedule a job that runs every hour:

CREATE OR REPLACE FUNCTION hourly_task()
RETURNS void LANGUAGE plpgsql AS $$
BEGIN
    -- Your SQL statements here
END;
$$;

CREATE EXTENSION IF NOT EXISTS pg_cron;

SELECT cron.schedule('0 * * * *', 'CALL hourly_task()');

Oracle:
To schedule a job that runs every week:

BEGIN
    DBMS_SCHEDULER.create_job (
        job_name        => 'WEEKLY_JOB',
        job_type        => 'PLSQL_BLOCK',
        job_action      => 'BEGIN YOUR_PROCEDURE; END;',
        start_date      => SYSTIMESTAMP,
        repeat_interval => 'FREQ=WEEKLY; BYDAY=MON',
        enabled         => TRUE
    );
END;

By utilizing GETDATE() and similar functions in these practical scenarios, you can automate and streamline various tasks, ensuring your reports and scheduled jobs are always up-to-date.


Conclusion: SQL GETDATE ()

The SQL GETDATE() function is a great tool for retrieving the current date and time within your database queries. Understanding how to use GETDATE() effectively means you can better manipulate and filter data, making your SQL queries responsive to real-time data needs. Five’s integrated environment allows you to manage your SQL databases and build comprehensive applications with ease, combining SQL with modern web development capabilities. Start using Five to accelerate your application development.


Start developing your first application!

Get Started For Free Today

Sign Up Free Book a demo
Develop your first application with Five now. Start Free

Thank you for your message!

Our friendly staff will contact you shortly.

CLOSE