LEARN

Using the DATEDIFF function in Snowflake

How to use the DATEDIFF function in Snowflake to calculate differences between dates and timestamps.

Archie Sarre Wood
Archie Sarre Wood

What is DATEDIFF in Snowflake?

The DATEDIFF function in Snowflake calculates the difference between two dates or timestamps based on a specified unit (e.g., days, months, years, hours, minutes, etc.). It is commonly used for calculating age, time intervals, or time-based metrics in analytical queries.

Syntax of DATEDIFF in Snowflake

DATEDIFF(unit, start_date, end_date)

Parameters:

  • unit: The time unit for the difference (e.g., DAY, MONTH, YEAR, HOUR, MINUTE).
  • start_date: The earlier date or timestamp.
  • end_date: The later date or timestamp.

How to Use DATEDIFF in Snowflake

Example 1: Calculating the Difference in Days

SELECT DATEDIFF(DAY, '2024-01-01', '2024-02-01') AS days_difference;

Output: 31

Example 2: Calculating the Difference in Months

SELECT DATEDIFF(MONTH, '2023-12-01', '2024-02-01') AS months_difference;

Output: 2

Example 3: Calculating the Difference in Years

SELECT DATEDIFF(YEAR, '2020-01-01', '2024-01-01') AS years_difference;

Output: 4

Example 4: Calculating the Difference in Hours

SELECT DATEDIFF(HOUR, '2024-02-10 08:00:00', '2024-02-10 18:00:00') AS hours_difference;

Output: 10

Common Use Cases for DATEDIFF

  1. Calculating User or Customer Age
    SELECT DATEDIFF(YEAR, birth_date, CURRENT_DATE) AS age FROM users;
  2. Measuring Time Between Events
    SELECT DATEDIFF(DAY, order_date, delivery_date) AS delivery_time FROM orders;
  3. Tracking Session Durations
    SELECT DATEDIFF(MINUTE, session_start, session_end) AS session_duration FROM user_sessions;

Best Practices for Using DATEDIFF in Snowflake

  • Ensure Consistency in Date Formats: Use DATE or TIMESTAMP consistently to avoid unexpected results.
  • Consider Business Logic Needs: Some use cases require DATEDIFF(MONTH, start_date, end_date), while others may need exact days (DATEDIFF(DAY, start_date, end_date)).
  • Use CURRENT_DATE or CURRENT_TIMESTAMP for Dynamic Queries: This ensures real-time calculations based on system time.

Using Snowflake with Evidence

For teams analyzing time-based data in Snowflake, Evidence provides a powerful way to build dynamic reports and dashboards. With Evidence, you can:

  • Leverage DATEDIFF to track time-based trends.
  • Automate real-time reporting using SQL queries.
  • Collaborate with your team through version-controlled analytics.

Learn more about using Snowflake with Evidence by visiting the Evidence documentation.

Get Started with Evidence

Build performant data apps using SQL and markdown

Join industry leaders version controlling their reporting layer

Start Free Trial →