web-dev-qa-db-fra.com

Convertir le format de date au format JJ/MMM/AAAA dans SQL Server

J'ai une requête en SQL, je dois obtenir la date dans un format de dd/mmm/yy 

Exemple: 25/jun/2013

Comment puis-je le convertir pour SQL Server?

54
Krish KvR

Je ne suis pas sûr qu'il y ait une correspondance exacte pour le format que vous voulez. Mais vous pouvez vous rapprocher de convert() et du style 106. Ensuite, remplacez les espaces:

SELECT replace(convert(NVARCHAR, getdate(), 106), ' ', '/')
61
Jonathan Lonowski

Il existe déjà plusieurs réponses et types de formatage pour SQL Server 2008. Mais cette méthode est quelque peu ambiguë et il vous serait difficile de vous rappeler le nombre correspondant au format de date spécifique. C'est pourquoi les prochaines versions de SQL Server offrent une meilleure option.

Si vous utilisez SQL Server 2012 ou des versions ultérieures, vous devez utiliser Fonction Format ()

FORMAT ( value, format [, culture ] )

Avec l'option culture, vous pouvez spécifier la date en fonction de vos téléspectateurs.

DECLARE @d DATETIME = '10/01/2011';
SELECT FORMAT ( @d, 'd', 'en-US' ) AS 'US English Result'
      ,FORMAT ( @d, 'd', 'en-gb' ) AS 'Great Britain English Result'
      ,FORMAT ( @d, 'd', 'de-de' ) AS 'German Result'
      ,FORMAT ( @d, 'd', 'zh-cn' ) AS 'Simplified Chinese (PRC) Result'; 

SELECT FORMAT ( @d, 'D', 'en-US' ) AS 'US English Result'
      ,FORMAT ( @d, 'D', 'en-gb' ) AS 'Great Britain English Result'
      ,FORMAT ( @d, 'D', 'de-de' ) AS 'German Result'
      ,FORMAT ( @d, 'D', 'zh-cn' ) AS 'Chinese (Simplified PRC) Result';

US English Result Great Britain English Result  German Result Simplified Chinese (PRC) Result
----------------  ----------------------------- ------------- -------------------------------------
10/1/2011         01/10/2011                    01.10.2011    2011/10/1

US English Result            Great Britain English Result  German Result                    Chinese (Simplified PRC) Result
---------------------------- ----------------------------- -----------------------------  ---------------------------------------
Saturday, October 01, 2011   01 October 2011               Samstag, 1. Oktober 2011        2011年10月1日

Pour la solution OP, nous pouvons utiliser le format suivant, qui est déjà mentionné par @Martin Smith:

FORMAT(GETDATE(), 'dd/MMM/yyyy', 'en-us')

Quelques exemples de formats de date:

 enter image description here

Si vous voulez plus de formats de date du serveur SQL, vous devriez visiter:

  1. Format de date et heure personnalisé
  2. Format de date et heure standard
43
Somnath Muluk

nous pouvons convertir la date en plusieurs formats comme

SELECT convert(varchar, getdate(), 106)

Ceci retourne dd mon yyyy 

Plus ici Cela peut vous aider

30
Nithesh

La réponse acceptée donne déjà la meilleure solution en utilisant des méthodes de formatage intégrées en 2008.

Il est à noter que les résultats renvoyés dépendent toutefois de la langue de connexion.

SET language Russian

SELECT replace(CONVERT(NVARCHAR, getdate(), 106), ' ', '/') 

Résultats

06/апр/2015

au moment de l'écriture.

Pour les personnes rencontrant cette question sur des versions plus récentes de SQL Server, une méthode qui évite ce problème - et la nécessité de REPLACE est

FORMAT(GETDATE(),'dd/MMM/yyyy', 'en-us')

À partir de 2005, il serait possible d’écrire un fichier UDF CLR acceptant un format DateTime, Format Pattern et Culture pour le simuler.

9
Martin Smith

Essayez d'utiliser la requête ci-dessous.

SELECT REPLACE(CONVERT(VARCHAR(11),GETDATE(),6), ' ','/');  

Résultat: 20/juin/13

SELECT REPLACE(CONVERT(VARCHAR(11),GETDATE(),106), ' ','/');  

Résultat: 20/juin/2013

8
Praveen

Essaye ça :

select replace ( convert(varchar,getdate(),106),' ','/')
1
KD29

Essaye ça

select convert(varchar,getdate(),100)

le troisième paramètre est format, la plage va de 100 à 114, tout le monde devrait fonctionner pour vous.

Si vous avez besoin de date en dd/mmm/yyyy, utilisez ceci:

replace(convert(char(11),getdate(),113),' ','-')

Remplacez getdate() par le nom de votre colonne. Cela a fonctionné pour moi.

1
Chethan

Vous pouvez utiliser cette requête

SELECT FORMAT (getdate(), 'dd/MMM/yy') as date

J'espère que cette requête vous aide.

Merci!!

0
Nitika Chopra

Toute personne essayant de saisir manuellement la variable de type de date du serveur de SQL utilise ce format en entrant: 

'yyyy-mm-dd' 

0
IteratioN7T