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?

62
demandé sur p.matsinopoulos 2012-01-18 00:18:45

9 réponses

Jetez un oeil à CONVERT . Le 3ème paramètre est le style Date-heure auquel vous souhaitez convertir.

Par exemple

SELECT CONVERT(VARCHAR(10), GETDATE(), 103) -- dd/MM/yyyy format
99
répondu AdaTheDev 2014-08-06 21:22:14

Essayez ceci:

print cast(getdate() as date )

39
répondu jabu.hlong 2014-02-19 14:29:25

Si vous avez besoin du résultat dans un format de date, vous pouvez utiliser:

Select Convert(DateTime, Convert(VarChar, GetDate(), 101))
12
répondu Israel Margulies 2012-11-20 14:46:27

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
7
répondu CD Jorgensen 2012-01-17 20:27:19

Avec SQL Server 2005, j'utiliserais ceci:

select replace(convert(char(10),getdate(),102),'.',' ')

Résultats: 2015 03 05

4
répondu AGuest 2015-03-05 19:27:13

Le format de date le plus court de mm / JJ / AA peut être obtenu avec:

Select Convert(varchar(8),getdate(),1)
2
répondu bsivel 2016-05-26 16:14:32

Pour toutes les versions de SQL Server: dateadd(dd, datediff(dd, 0, getdate()), 0)

1
répondu Andrey 2015-12-17 03:18:30

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)
1
répondu BIReportGuy 2018-06-28 21:34:06

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.

-2
répondu Anuj Kaul 2014-11-14 12:17:21