Θα πρέπει να δώσεις λίγα παραπάνω στοιχεία. Από που προέρχεται η αρχική τιμή? Είναι DateTime που προήλθε από τη βάση? String που ήρθε από τη βάση? String που έδωσε ο χρήστης? Κάτι άλλο? Τί θέλεις να κάνεις με τη νέα τιμή? Να τη βάλεις στη βάση? Κάτι άλλο?
Αν χρησιμοποιείς stored procedurs ή parameterized queries μπορείς να στείλεις στη βάση τις ημερομηνίες ως DateTime οπότε δεν απαιτείται καμμία μετατροπή. Επίσης, η μορφή YYYY-MM-DD δεν είναι κάποιο standard format και η μετάφραση του εξαρτάται από το locale. Standard formats είναι το ISO 8601 'yyyy-mm-ddThh:mm:ss[.mmm]', το ODBC { ts 'ΥΥΥΥ-ΜΜ-DD hh:mm:ss.ttt' }. Επίσης standard είναι το 'YYYYMMDD'.
Να επισημάνω ξανά ότι τα πράγματα είναι πολύ, πολύ ευκολότερα αν χρησιμοποιήσεις parameterized queries ή stored procedures. Άσε που έτσι πετυχαίνεις και καλύτερη απόδοση και εξαφανίζεται σχεδόν εντελώς ο κίνδυνος ενός SQL Injection attack. Κι όλα αυτά χωρίς να κάνεις τίποτε.
Ρίξε μία ματιά και στο Using Date and Time Data και το Ο Sql Server ΔΕΝ ΧΡΕΙΑΖΕΤΑΙ κόλπα για να υποστηρίξει τα ελληνικά!
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos