Es strādāju pie vaicājuma Sql Server 2005, kur man ir nepieciešams pārvērst vērtību DateTime
mainīgajā varchar
mainīgajā yyyyyy-mm-dd
formātā (bez laika daļas). Kā to izdarīt?
Izmēģiniet:
CONVERT(varchar(10), [MyDateTimecolumn], 20)
Lai iegūtu pilnu datuma laiku, nevis tikai datumu, veiciet:
CONVERT(varchar(23), [MyDateTimecolumn], 121)
Skatiet šo lapu par konvertēšanas stiliem:
http://msdn.microsoft.com/en-us/library/ms187928.aspx VAI SQL Server CONVERT() funkcija.
Vai nu Cast
, vai Convert
:
CAST
sintakse:
CAST ( expression AS data_type [ (length ) ])
CONVERT
sintakse:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
http://msdn.microsoft.com/en-us/library/ms187928.aspx
Patiesībā, tā kā jūs lūdzāt konkrētu formātu:
REPLACE(CONVERT(varchar(10), Date, 102), '.', '-')
Jūs nenorādījāt, kurā datubāzē, bet, izmantojot mysql, šeit ir vienkāršs veids, kā iegūt datumu no laika zīmoga (un varchar tipa konversijai jānotiek automātiski):
mysql> select date(now());
+-------------+
| date(now()) |
+-------------+
| 2008-09-16 |
+-------------+
1 row in set (0.00 sec)