Retour du nom du mois dans la requête SQL Server
Utiliser SQL Server 2008
, j'ai une requête qui est utilisé pour créer une vue et j'essaie d'afficher un mois du nom de au lieu d'un entier.
Dans ma base de données, la datetime
est dans une colonne appelée OrderDateTime
. Les lignes de la requête qui renvoient la date sont:
DATENAME(yyyy, S0.OrderDateTime) AS OrderYear,
DATEPART(MONTH, S0.OrderDateTime) AS OrderMonth
Retourne une colonne d'années et d'une colonne de mois entiers. Je veux retourner les noms de mois (Jan, Feb, etc
). J'ai essayé:
CONVERT(varchar(3), DATEPART(MONTH, S0.OrderDateTime) AS OrderMonth
C'est évidemment incorrect, comme je reçois
Syntaxe incorrecte à proximité 'En tant QUE'
Message. Quelle est la syntaxe appropriée pour ma requête?
11 réponses
Cela vous donnera le nom complet du mois.
select datename(month, S0.OrderDateTime)
Si vous voulez seulement les trois premières lettres, vous pouvez utiliser ceci
select convert(char(3), S0.OrderDateTime, 0)
Changement:
CONVERT(varchar(3), DATEPART(MONTH, S0.OrderDateTime) AS OrderMonth
À:
CONVERT(varchar(3), DATENAME(MONTH, S0.OrderDateTime)) AS OrderMonth
Sélectionnez SUBSTRING (convert(varchar,S0.OrderDateTime,100),1,3)
à partir du nom de votre Table
Dans SQL Server 2012, il est possible d'utiliser FORMAT(@mydate, 'MMMM') AS MonthName
Cela vous donnera ce que vous demandez:
select convert(varchar(3),datename(month, S0.OrderDateTime))
Sans frapper db, nous pouvons récupérer tous les noms de mois.
WITH CTE_Sample1 AS
(
Select 0 as MonthNumber
UNION ALL
select MonthNumber+1 FROM CTE_Sample1
WHERE MonthNumber+1<12
)
Select DateName( month , DateAdd( month , MonthNumber ,0 ) ) from CTE_Sample1
Fondamentalement ceci ...
declare @currentdate datetime = getdate()
select left(datename(month,DATEADD(MONTH, -1, GETDATE())),3)
union all
select left(datename(month,(DATEADD(MONTH, -2, GETDATE()))),3)
union all
select left(datename(month,(DATEADD(MONTH, -3, GETDATE()))),3)
Déclarer @iMonth INT = 12
Sélectionner CHOOSE(@iMonth,'JANUARY','FEBRUARY','MARCH','APRIL','MAY','JUNE','JULY','AUGUST','SEPTEMBER','OCTOBER','NOVEMBER','DECEMBER')