SmartQueryTools

Calculate Date Difference in JSON Files Online

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

How to calculate Date Difference in JSON 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 (JSON)

[
  {
    "booking_id": "B-2201",
    "room_type": "double",
    "check_in": "2026-07-03",
    "check_out": "2026-07-06"
  },
  {
    "booking_id": "B-2202",
    "room_type": "twin",
    "check_in": "2026-07-28",
    "check_out": "2026-08-02"
  },
  {
    "booking_id": "B-2203",
    "room_type": "single",
    "check_in": "2026-08-14",
    "check_out": "2026-08-15"
  },
  {
    "booking_id": "B-2204",
    "room_type": "double",
    "check_in": "2026-08-20",
    "check_out": null
  },
  {
    "booking_id": "B-2205",
    "room_type": "suite",
    "check_in": "2026-12-30",
    "check_out": "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 JSON files

JSON has no date type, so dates arrive as strings. When every value of a key looks like 2026-07-03, the key is loaded as a DATE. Values like 2026-07-03 09:14:00 are loaded as a TIMESTAMP. ISO strings with a T separator, such as 2026-07-03T09:14:00Z, usually stay as text. They still work, because the tool converts ISO text to a timestamp during the calculation. Epoch numbers such as 1751533200 are plain numbers and cannot be converted.

Objects that lack the start or end key get null for that field, and their result is null too. The new key is added at the end of each object as a JSON number. Keys that were detected as dates are written back as "YYYY-MM-DD" or "YYYY-MM-DD HH:MM:SS" strings. Keys that stayed as text, like the T and Z form, are written back exactly as they came in. A Z suffix is read as UTC and any other offset is applied before comparing, so check a few rows if your timestamps carry mixed offsets.

Frequently Asked Questions

Will ISO 8601 strings with a Z suffix work in a JSON file?

Yes. Strings like 2026-07-03T09:14:00Z are converted to timestamps during the calculation, and the original strings are written back unchanged in the output.

What happens to JSON objects missing the end date key?

The missing key loads as null, so the difference for that object is null. No error is raised.

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