J'utilise la fonction CONVERT(data_type(length),expression,style)
pour changer le format d'une date dans une requête SELECT.
Déclarez @dt nvarchar (20)
Sélectionnez @dt = Convert (nvarchar (20), SalesDate, 113) FROM SalesTable
Le format dont j'ai besoin est 'jj-MMM-aaaa' (par exemple. '05-juil-2013 '), mais je n'ai pas pu trouver le numéro de style approprié (par exemple, 113) pour ce format particulier. Quelqu'un peut-il m'aider avec ça s'il vous plaît?
Essaye ça:
Declare @dt NVARCHAR(20)
Select
@dt = REPLACE(CONVERT(CHAR(15), SalesDate, 106),' ',' - ')
FROM SalesTable
select CONVERT(NVARCHAR, SYSDATETIME(), 106) AS [DD-MON-YYYY]
ou sinon
select REPLACE(CONVERT(NVARCHAR,GETDATE(), 106), ' ', '-')
les deux fonctionne bien
Il ne semble pas que JJ-MMM-AAAA soit pris en charge par défaut (au moins, avec un tiret comme séparateur). Cependant, en utilisant la clause AS, vous devriez pouvoir faire quelque chose comme:
SELECT CONVERT(VARCHAR(11), SYSDATETIME(), 106) AS [DD-MON-YYYY]
Voir ici: http://www.sql-server-helper.com/sql-server-2008/sql-server-2008-date-format.aspx
Je pense que c'est la meilleure façon de le faire.
REPLACE(CONVERT(NVARCHAR,CAST(WeekEnding AS DATETIME), 106), ' ', '-')
Parce que vous n'êtes pas obligé d'utiliser varchar(11)
ou varchar(10)
qui peut poser problème à l'avenir.
select convert(varchar(11), transfer_date, 106)
m'a obtenu mon résultat souhaité de date au 07 mars 2018
Ma colonne transfer_date
est une colonne de type date-heure et j'utilise SQL Server 2017 sur Azure.
SELECT Convert(varchar(10),CONVERT(date,'columnname',105),105) as "end";
OR
SELECT CONVERT(VARCHAR(10), CAST(event_enddate AS DATE), 105) AS [end];
retournera la date particulière dans le format de 'jj-mm-aaaa'
Le résultat serait comme ça ..
04-07-2016