Convertir un DateTime SQL Server en un format de date plus court
J'ai une colonne datetime
dans SQL Server qui me donne des données comme ceci 10/27/2010 12:57:49 pm
et je veux interroger cette colonne mais juste que SQL Server renvoie le jour le mois et l'année - par exemple. 2010 10 27
ou quelque chose comme ça.
Quelles sont les fonctions que je devrais rechercher?
Devrais-je essayer de convertir en un autre type de données de date? Ou simplement le convertir en une chaîne?
9 réponses
Si vous avez besoin du résultat dans un format de date, vous pouvez utiliser:
Select Convert(DateTime, Convert(VarChar, GetDate(), 101))
En plus de CAST et CONVERT, si vous utilisez Sql Server 2008, vous pouvez convertir en un type de date (ou utiliser ce type pour commencer), puis éventuellement convertir à nouveau en varchar:
declare @myDate date
set @myDate = getdate()
print cast(@myDate as varchar(10))
Sortie:
2012-01-17
Avec SQL Server 2005, j'utiliserais ceci:
select replace(convert(char(10),getdate(),102),'.',' ')
Résultats: 2015 03 05
Le format de date le plus court de mm / JJ / AA peut être obtenu avec:
Select Convert(varchar(8),getdate(),1)
Pour toutes les versions de SQL Server: dateadd(dd, datediff(dd, 0, getdate()), 0)
Si vous avez un champ datetime qui donne les résultats comme ceci 2018-03-30 08: 43: 28.177
Proposé: et que vous souhaitez modifier la datetime à date pour apparaître comme 2018-03-30
cast(YourDateField as Date)
Il suffit d'ajouter le mot-clé date. Par exemple, sélectionnez date (orderdate), count(1) à partir des commandes où orderdate > '2014-10-01' Grouper par date(orderdate);
Orderdate est en date heure. Cette requête affichera les commandes pour cette date plutôt que datetime.
Le mot-clé Date appliqué sur une colonne datetime le changera en date courte.