SmartQueryTools

Calculate Date Difference in CSV Files Online

Calculate the difference between two date or timestamp columns in CSV files directly in your browser. Output in days, months, years, hours, minutes, or seconds — no upload required.

How to calculate Date Difference in CSV files

  1. Drop your file onto the upload area. It is loaded into the in-browser engine and the first 200 rows are shown.
  2. Choose the start date column and the end date column. The tool preselects the first two date or timestamp columns it finds.
  3. Pick a unit: days, months, years, hours, minutes or seconds.
  4. Name the output column (the default is date_diff) and click Calculate Difference. The result is end minus start, added as the last column.
  5. Download the file in the same format you uploaded.

Your file is processed locally in your browser and is never uploaded. The free limit is 50 MB per file; larger files work if your device has the memory for them.

Worked example

A small hotel exports its bookings and wants the number of nights for each stay. One guest is still checked in, so the check-out date is blank.

Input (CSV)

booking_id,room_type,check_in,check_out
B-2201,double,2026-07-03,2026-07-06
B-2202,twin,2026-07-28,2026-08-02
B-2203,single,2026-08-14,2026-08-15
B-2204,double,2026-08-20,
B-2205,suite,2026-12-30,2027-01-04

Settings

  • Start date column: check_in
  • End date column: check_out
  • Unit: days
  • Output column name: nights

Result

booking_idroom_typecheck_incheck_outnights
B-2201double2026-07-032026-07-063
B-2202twin2026-07-282026-08-025
B-2203single2026-08-142026-08-151
B-2204double2026-08-20NULLNULL
B-2205suite2026-12-302027-01-045

Each value is check_out minus check_in in whole days. Stays that cross a month or year end are counted correctly, as B-2202 and B-2205 show. The open booking has no check-out date, so its result is NULL. Had the unit been months, B-2202 would give 1 and B-2201 would give 0, because months are counted by calendar boundaries crossed.

Working with CSV files

CSV dates are text until the file loads. ISO dates such as 2026-07-03 and many common layouts such as 07/03/2026 are detected as dates while the file is read. Detection works per column. If one row holds "TBC" or "n/a", the whole column stays text. The tool then converts that text to a timestamp while calculating, and the conversion only accepts ISO style values. A text column of 03/07/2026 values, or any column with a stray word, stops the run with a conversion error.

Blank cells load as NULL and give a blank result, which is usually what you want for open cases such as a ticket that is not closed yet. Whether 03/07/2026 means 3 July or 7 March is decided once for the whole column when the file loads. Check a row where the day is above 12 in the preview before you trust the result. If it is wrong, run Parse Dates with an explicit format first.

Frequently Asked Questions

Why does my CSV date difference fail with a conversion error?

The column was loaded as text, usually because one row holds something that is not a date, or the dates are in a non-ISO layout. Use Parse Dates to turn the column into real dates, or filter out the bad rows, then calculate again.

Can I get the number of days between a CSV date and today?

Not with this tool. It compares two columns in the file. Add a column holding today's date first, for example with the SQL Query tool using current_date, then run Date Difference.

How are months and years counted?

By calendar boundaries crossed, not by complete periods. 31 January to 1 February is 1 month, and 31 December to 1 January is 1 year. The same rule applies to hours and days: 23:00 to 01:00 the next day is 1 day. For exact elapsed time, use hours or seconds and divide.

What if the end date is earlier than the start date?

The result is negative. The tool always computes end minus start, so 3 July to 1 July gives -2 days. Swap the two columns if you want positive numbers.

Can I calculate age in years from a birth date?

Only roughly. You need a second date column to compare against, and years are counted by year boundaries, so someone born in December shows as a year older from 1 January. For exact ages, compare in days and divide by 365.25, or use the SQL Query tool.

Related Tools