Difference between two dates in dates using Google bigquery? – Sql

Photo of author
Written By M Ibrahim
android-sqlite date-difference datediff google-bigquery

Quick Fix: Use DATE_DIFF function to calculate the difference between two dates. The syntax is DATE_DIFF(end_date, start_date, unit). The unit can be DAY, MONTH, or YEAR.

The Problem:

Develop a solution using Google BigQuery to calculate the difference in days between two timestamps stored in ‘date_start’ and ‘date_end’ columns in Standard SQL.

The Solutions:

Solution 1: Using DATE_DIFF Function

In Standard SQL, you can use the DATE_DIFF function to calculate the difference between two dates. The syntax is as follows:

DATE_DIFF(date1, date2, unit)

Where:

  • date1 and date2 are the two dates you want to find the difference between.
  • unit is the unit of time you want to use for the difference. Valid values are DAY, MONTH, and YEAR.

For example, to find the difference between the dates '2018-02-20' and '2018-01-15' in days, you would use the following query:

SELECT DATE_DIFF(DATE '2018-02-20', DATE '2018-01-15', DAY) as days_diff;

This would return the result 36.

You can also use the DATE_DIFF function to calculate the difference between a date and a timestamp. In this case, the syntax is as follows:

DATE_DIFF(timestamp1, timestamp2, unit)

Where:

  • timestamp1 and timestamp2 are the two timestamps you want to find the difference between.
  • unit is the unit of time you want to use for the difference. Valid values are DAY, MONTH, and YEAR.

For example, to find the difference between the timestamps '2018-02-20 12:00:00' and '2018-01-15 18:00:00' in days, you would use the following query:

SELECT DATE_DIFF(TIMESTAMP '2018-02-20 12:00:00', TIMESTAMP '2018-01-15 18:00:00', DAY) as days_diff;

This would return the result 35.

Solution 2: Using PARSE_DATE() and DATE_DIFF()

To calculate the difference in days between two timestamp fields in Google Big Query, you can use the following steps:

  1. First, you need to “translate” your string representation of the date into the date type using the PARSE_DATE() function.
  2. Then, you can use the DATE_DIFF() function to calculate the difference/distance between two dates.

Here’s an example:

#standardSQL
SELECT 
  DATE_DIFF(
    PARSE_DATE('%Y%m%d', '20180220'), 
    PARSE_DATE('%Y%m%d', '20180115'), 
    DAY
  ) days

This will produce the following output:

Row  days
1    36

In this example, the PARSE_DATE() function is used to convert the string representations of the dates ‘20180220’ and ‘20180115’ into date types. The DATE_DIFF() function is then used to calculate the difference between these two dates in days.

You can find more information about the PARSE_DATE() and DATE_DIFF() functions in the links below: