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?
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), ' ', '/')
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.
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:
Si vous voulez plus de formats de date du serveur SQL, vous devriez visiter:
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
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.
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
Essaye ça :
select replace ( convert(varchar,getdate(),106),' ','/')
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.
Vous pouvez utiliser cette requête
SELECT FORMAT (getdate(), 'dd/MMM/yy') as date
J'espère que cette requête vous aide.
Merci!!
Toute personne essayant de saisir manuellement la variable de type de date du serveur de SQL utilise ce format en entrant:
'yyyy-mm-dd'