Dirbu su užklausa "Sql Server 2005", kurioje man reikia konvertuoti DateTime
kintamojo reikšmę į varchar
kintamąjį yyyyyy-mm-dd
formatu (be laiko dalies). Kaip tai padaryti?
Išbandykite šiuos veiksmus:
CONVERT(varchar(10), [MyDateTimecolumn], 20)
Norėdami gauti ne tik datą, bet ir visą laiką, atlikite:
CONVERT(varchar(23), [MyDateTimecolumn], 121)
Žr. šiame puslapyje apie konvertavimo stilius:
http://msdn.microsoft.com/en-us/library/ms187928.aspx ARBA SQL serverio CONVERT() funkcija
Arba Cast
, arba Convert
:
CAST
sintaksė:
CAST ( expression AS data_type [ (length ) ])
CONVERT
sintaksė:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
http://msdn.microsoft.com/en-us/library/ms187928.aspx
Tiesą sakant, kadangi prašėte konkretaus formato:
REPLACE(CONVERT(varchar(10), Date, 102), '.', '-')
Nepasakėte, kokioje duomenų bazėje, bet naudojant mysql yra paprastas būdas gauti datą iš laiko žymos (varchar tipo konvertavimas turėtų įvykti automatiškai):
mysql> select date(now());
+-------------+
| date(now()) |
+-------------+
| 2008-09-16 |
+-------------+
1 row in set (0.00 sec)