Αν χρησιμοποιούσες "local format" (υποθέτω ότι εννοείς ότι ο χρήστης έχει ελληνικά locale settings) δεν θα είχες κανένα πρόβλημα. Το θέμα των ημερομηνιών το έχουμε συζήτήσει άπειρες φορές, σε σημείο που έκατσα και έγραψα όλες τις απαντήσεις σε ένα blog post, στο "Ο SQL Server ΔΕΝ ΧΡΕΙΑΖΕΤΑΙ κόλπα για να υποστηρίξει ελληνικά". Πρώτον, ο SQL Server αποθηκεύει σωστά τις ημερομηνίες, αν φυσικά δεν τις στείλεις σαν χύμα κείμενο. Stored procedures ή parameterized queries δεν έχουν πρόβλημα. Αν χρησιμοποιείς χύμα SQL, θα πρέπει να περάσεις την ημερομηνία στη μορφή yyyyMMdd ή
Το .NET Framework το ίδιο χρησιμοποιεί πάντα το locale του συστήματος για να κάνει τη σωστή μετατροπή της ημερομηνίας. Μόνο σημείο στο οποίο χρειάζεται προσοχή είναι όταν ο χρήστης έχει αγγλικές ρυθμίσεις locale αλλά δώσει την ημερομηνία σε ελληνικό format. Γι αυτό καλύτερα να χρησιμοποιείς DateTimePicker control αντί για απλό Textbox.
Επίσης γιατί χρησιμοποιείς γαλλικό locale αντί για ελληνικό? Εκτός και αν ο χρήστης είναι γάλλος, το ελληνικό locale κάνει σωστά τη δουλειά.
Να τελειώσω με τη στάνταρ απάντηση σε ερωτήσεις ημερομηνίας και αριθμών. Τα προβλήματα οφείλονται σχεδόν πάντα στο κάποιος δεν κατάλαβε ότι το Framework και ο SQL καταλαβαίνουν από ημερομηνίες, και προσπάθησε να επιβάλει τη μετατροπή είτε ενσυνείδητα (προσπαθώντας να γράψει την ημερομηνία με ένα συγκεκριμένο τρόπο) είτε ασυνείδητα (μετατρέποντας μία ημερομηνία σε κείμενο ή το αντιστροφο). Αν χρησιμοποιείς DateTimePicker control και αποθηκεύεις στη βάση με stored procedures ή parameterize queries δεν θα έχεις ποτέ πρόβλημα.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos