Je travaille sur une requête dans Sql Server 2005 où j'ai besoin de convertir une valeur de la variable DateTime
en une variable varchar
au format yyyy-mm-dd
(sans la partie temps). Comment dois-je m'y prendre ?
Essayez ce qui suit :
CONVERT(varchar(10), [MyDateTimecolumn], 20)
Pour une heure complète et pas seulement une date, faites :
CONVERT(varchar(23), [MyDateTimecolumn], 121)
Voir cette page pour les styles de conversion :
[http://msdn.microsoft.com/en-us/library/ms187928.aspx][1] OU [Fonction CONVERT() du serveur SQL] [2].
[1] : http://msdn.microsoft.com/en-us/library/ms187928.aspx [2] : http://www.w3schools.com/sql/func_convert.asp
Soit Cast
, soit Convert
:
Syntaxe pour CAST
:
CAST ( expression AS data_type [ (length ) ])
Syntaxe pour `CONVERT' :
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
http://msdn.microsoft.com/en-us/library/ms187928.aspx
En fait, puisque vous avez demandé un format spécifique :
REPLACE(CONVERT(varchar(10), Date, 102), '.', '-')
Vous n'avez pas précisé de quelle base de données il s'agissait, mais avec mysql, voici un moyen simple d'obtenir une date à partir d'un horodatage (et la conversion de type varchar devrait se faire automatiquement) :
mysql> select date(now());
+-------------+
| date(now()) |
+-------------+
| 2008-09-16 |
+-------------+
1 row in set (0.00 sec)