есть ли проблема с этим синтаксисом sql
Это во многом зависит от того, откуда исходит идентификатор пользователя. Если его пользователь предоставил, вы открываете себя для атаки SQL-инъекцией
Вместо этого вы должны использовать параметры. В качестве дополнительного бонуса вам не нужно беспокоиться о размещении кавычек вокруг значений.
var query3 = @"INSERT INTO CongeAccept(UserId,DateDebut,DateFin,TypeConge)
SELECT UserId,DateDebutDemande,DateFinDemande,TypeConge
FROM DemandeConge
WHERE UserId = @0";
db.Execute(query3, userId );