Index: src/services/ArchiveExportService.js
===================================================================
--- src/services/ArchiveExportService.js	(revision f704237f2e219c1db2840feb5c33df07afa53137)
+++ src/services/ArchiveExportService.js	(revision 8151340aee19dd0280b5185a8c3e9c56dc279653)
@@ -18,5 +18,5 @@
 import path from 'path';
 import crypto from 'crypto';
-import db from '../config/database.js';
+import db, { isoSql } from '../config/database.js';
 import { MEDIA_ROOT, resolveAudioPath } from '../config/paths.js';
 
@@ -494,5 +494,5 @@
   // is de volgorde van twee posts op dezelfde seconde niet bepaald.
   const posts = db.prepare(`SELECT * FROM posts WHERE site_id = ?
-                             ORDER BY COALESCE(published_at, created_at) ASC, id ASC`).all(site.id);
+                             ORDER BY ${isoSql('COALESCE(published_at, created_at)')} ASC, id ASC`).all(site.id);
 
   for (const post of posts) {
@@ -539,5 +539,5 @@
     try {
       replies = db.prepare(`SELECT * FROM ap_interactions WHERE post_id = ? AND kind = 'reply'
-                             ORDER BY COALESCE(published, created_at) ASC, id ASC`).all(post.id);
+                             ORDER BY ${isoSql('COALESCE(published, created_at)')} ASC, id ASC`).all(post.id);
     } catch { /* tabel kan ontbreken op een heel oude database */ }
     if (replies.length) {
