A Dutch CSV: semicolons, decimal commas, and dates written with dashes
A Dutch export has semicolons between the fields and a comma inside the numbers, like its neighbours, but it writes dates with dashes: 31-12-2026. Those dashes are the reason a Dutch file trips sorting and date reading in a way a German or Spanish one does not.
What a Dutch file usually looks like
Saved by a spreadsheet set to Dutch (Netherlands), the file has a semicolon between the fields, a comma as the decimal mark and a full stop between thousands, so one thousand two hundred and thirty-four and a half is written 1.234,56. Dates are written DD-MM-YYYY: the last day of 2026 is 31-12-2026.
The separator is not a character any of the numbers contain, so nothing in the file needs quoting to survive — which is exactly why the amounts and the fields can be told apart at all.
None of this is a rule the file carries with it — there is no country written inside a CSV. It is what the program that wrote the file was set to, which is why every tool here reads the bytes and says what it found rather than trusting a flag.
Dashes that look like an ISO date backwards
The international way to write a date is 2026-12-31 — year, month, day, with dashes — and it exists because it sorts correctly as plain text and cannot be misread. A Dutch date uses the same dashes and the opposite order: 31-12-2026. The two are easy to tell apart by eye and not at all easy for a program, which sees a dashed date and often assumes the international one.
The practical damage is in sorting. Sort a column of Dutch dates as text and you get every first of the month together, then every second, with the years scattered inside each group — an ordering that looks deliberate and is meaningless. Sorting the same column after reading it as a date puts it right; the sort tool here is sorting the values it was given, so the reading has to come first.
Reading the dates, then fixing the rest
In the SQL console, strptime with the pattern %d-%m-%Y turns the column into real dates, and anything you do afterwards — sorting, filtering by month, totalling by quarter — is done on dates rather than on text that resembles them. It is the same move the international form does not need, which is why a file that arrives in the Dutch form is worth converting once rather than working around repeatedly.
The numbers and the separator are the familiar European pair: amounts like 1.234,56 with a full stop between thousands and a comma before the cents, semicolons between the fields. The delimiter fixer reads both, converting a column of amounts only when nearly every value in it is one, and writes a comma-separated UTF-8 copy with the count of everything it changed.
The sample file
Factuur;Klant;Datum;Bedrag
INV-1001;Voorbeeld BV;31-12-2026;1.234,56
INV-1002;Model NV;02-03-2026;89,50
INV-1003;Proefbedrijf BV;05-06-2026;32,10
INV-1004;Steekproef BV;12-11-2026;24.680,00
INV-1005;Demo NV;20-01-2026;410,00
Obviously made-up data, small enough to read. Download it and drop it on the tool to see the fix before trying your own file.
Questions
- Why does my Dutch CSV open as one column?
- The fields are separated by semicolons, because the comma is the decimal mark in Dutch regional settings. A tool expecting commas sees one long value per line and shows it that way.
- Is 31-12-2026 the same as 2026-12-31?
- The same day, written the opposite way round. The dashes are the same, which is exactly why a program that expects the international order can read a Dutch date as something else entirely.
- Why did sorting my dates give a strange order?
- Because they were sorted as text, so the day came first in the comparison. Read the column as dates with an explicit pattern and then sort, and the order comes out right.
- What happens to an amount like 1.234,56?
- It becomes 1234.56 when the column qualifies for conversion — nearly every value in it reading as a number — and is reported in the count of changed values before you download anything.
- Can I keep the amounts exactly as they are?
- Yes. Turn the number conversion off with one switch and only the separator changes; every value is carried across as the text it was, down to the last character.
- Is anything sent anywhere when I convert a Dutch file?
- No. The file is read and rewritten inside this page on your own machine, and every request the Network tab shows while you work is to this site, none of them carrying the file.