Εργάζομαι σε ένα ερώτημα στον Sql Server 2005 όπου πρέπει να μετατρέψω μια τιμή στη μεταβλητή DateTime
σε μια μεταβλητή varchar
σε μορφή yyyy-mm-dd
(χωρίς το χρονικό μέρος). Πώς μπορώ να το κάνω αυτό;
Δοκιμάστε τα εξής:
CONVERT(varchar(10), [MyDateTimecolumn], 20)
Για μια πλήρη ημερομηνία ώρα και όχι μόνο ημερομηνία κάντε:
CONVERT(varchar(23), [MyDateTimecolumn], 121)
Δείτε αυτή τη σελίδα για στυλ μετατροπής:
http://msdn.microsoft.com/en-us/library/ms187928.aspx OR Συνάρτηση CONVERT() του SQL Server
Είτε Cast
είτε Convert
:
Σύνταξη για CAST
:
CAST ( expression AS data_type [ (length ) ])
Σύνταξη για CONVERT
:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
http://msdn.microsoft.com/en-us/library/ms187928.aspx
Στην πραγματικότητα, αφού ζητήσατε μια συγκεκριμένη μορφή:
REPLACE(CONVERT(varchar(10), Date, 102), '.', '-')
Δεν είπατε ποια βάση δεδομένων, αλλά με τη mysql υπάρχει ένας εύκολος τρόπος να λάβετε μια ημερομηνία από ένα timestamp (και η μετατροπή τύπου varchar θα πρέπει να γίνει αυτόματα):
mysql> select date(now());
+-------------+
| date(now()) |
+-------------+
| 2008-09-16 |
+-------------+
1 row in set (0.00 sec)