Working with Data: All the calculations you need t
  • Introduction
  • What is this book?
  • How to Use this Book
  • Document Notes
  • Authors' Thanks
  • Strings
    • Concatenate
    • Split
    • Length
    • Slice
    • Trim
    • Contains
    • Match
    • Replace
    • Upper/Lower Case
  • Numbers
    • Sum
    • Average
    • Roll Ups
    • Round
    • Floor
    • Power
    • Square Root
    • Absolute
  • Dates
    • Date Difference
    • Age
  • Logical
    • Logical Operators
    • If
    • Case / Switch
    • Is Null/Empty
  • General
    • Count
    • Filter
    • Sort
    • Lookup/Join
    • Variables
    • Convert Type
  • Appendix
    • DateTime Parts
    • Helpful Resources
Powered by GitBook
On this page
  • Excel
  • Tableau
  • Alteryx
  • OrgVue
  • tSQL
  • Python

Was this helpful?

  1. Dates

Date Difference

PreviousDatesNextAge

Last updated 5 years ago

Was this helpful?

NB. Most tools use different conventions for referring to date parts. For a full comparison of the different options, go to .

Excel

=~DATEDIF!~(‹start_date›, ‹end_date›, "‹date_part›")

=DATEDIF(A1, B1, "D")

NB.:

  • DATEDIF reminder syntax is not listed in the usual prompt that appears when you start typing an Excel function.

  • The ‹date_part› must be wrapped in double quotes or the formula will not calculate.

  • Supported date parts are as follows (all fractions are rounded down):

Date Part

Equates to

Min : Max Values

"D"

Days

-∞ : ∞

"M"

Months

-∞ : ∞

"Y"

Years

-∞ : ∞

"MD"

Days (irrespective of month & year of the two dates)

0 : 30

"YD"

Days (irrespective of the year of the two dates)

0 : 364

"YM"

Months (irrespective of the year of the two dates)

0 : 11

Excel does not support differences in hours/minutes/seconds when using DATEDIF.

If you want to find a difference in time, you can use ~TEXT!~(‹end_time›, ‹start_time›, ‹format›) where ‹format› is one of 'h', 'h:mm', or 'h:mm:ss'.

Tableau

~DATEDIFF!~('‹datepart›', ‹start_date›, ‹end_date›«, start_of_week»)

DATEDIFF('day', [Transfer Date], [Finish Date])

NB. Supported date parts are as follows (all fractions are rounded up):

Date Part

Equates to

'year'

Years

'quarter'

Quarters

'month'

Months

'week'

Weeks

'day'

Days

'hour'

Hours

'minute'

Minutes

'second'

Seconds

Alteryx

~DATETIMEDIFF!~(‹start_date›, ‹end_date›, '‹date_part›')

DATETIMEDIFF([Transfer Date], [Finish Date], 'days')

NB. Supported date parts are as follows (all fractions are rounded down):

Date Part

Equates to

'year' / 'years'

Years

'month' / 'months'

Months

'day' / 'days'

Days

'hour' / 'hours'

Hours

'minute' / 'minutes'

Minutes

'second' / 'seconds'

Seconds

OrgVue

‹end_date›.~diff!~(‹start_date›«, date_part»)

node.transferdate.diff(node.finishdate,'d');
// OR
date(2016,10,18).diff(date(2015,11,23), 'm')

NB. Supported date parts are as follows (fractions are not rounded):

Date Part

Equates to

'y'

Years

'q'

Quarters

'm'

Months

'w'

Weeks

'd'

Days

tSQL

~DATEDIFF!~(‹date_part›, ‹start_date›, ‹end_date›)

SELECT DATEDIFF(month,TransferDate,FinishDate) AS ShippingPeriod
FROM OrdersData

NB. Supported date parts are as follows (fractions are not rounded):

Date Part

Equates to

year

Years

quarter

Quarters

month

Months

day

Days

week

Weeks

hour

Hours

minute

Minutes

second

Seconds

microsecond

Mircroseconds

nanosecond

Nanoseconds

Python

~datetime.date!~(‹end_date›) - ~datetime.date.!~(‹start_date›)

from datetime import date 
# so you don't have to reference datetime.date() to call each date

date(finishDate) - date.(transferDate)
# OR
date(2016,10,18) - date(2015,11,23)

This returns a date object. To unpack it as a number of days, wrap the difference expression in () and append .days:

from datetime import date

(date(2016,10,18) - date(2015,11,23)).days

NB.:

  • This requires the datetime library to be imported.

  • This returns the difference in days which can be divided/multiplied to give other units.

  • When manually creating a date, days and months must be entered as a single digit when < 9 (with no padding '0'), e.g. date(2016,9,20).

The above examples assume variables have been declared for finishDate and transferDate. For more information, go to the chapter .

Appendix > DateTime Parts
General > Variables