Đừng làm
param.Value = dt.ToShortDateString();
chỉ để lại
param.Value = dt;
Bạn đang cố gắng chèn một chuỗi vào trường DateTime - chắc chắn PostgreSQL sẽ phàn nàn.
sử dụng NpgsqlTypes.NpgsqlDbType.Timestamp nếu bạn muốn tránh mất thông tin thời gian