Mit habe SQL Server 2008
ich eine Abfrage, mit der eine Ansicht erstellt wird, und ich versuche, anstelle einer Ganzzahl den Namen eines Monats anzuzeigen .
In meiner Datenbank befindet sich das datetime
in einer Spalte namens OrderDateTime
. Die Zeilen in der Abfrage, die das Datum zurückgeben, lauten:
DATENAME(yyyy, S0.OrderDateTime) AS OrderYear,
DATEPART(MONTH, S0.OrderDateTime) AS OrderMonth
Dies gibt eine Spalte von Jahren und eine Spalte von Monaten als Ganzzahlen zurück. Ich möchte die Monatsnamen zurückgeben (Jan, Feb, etc
. Ich habe es versucht:
CONVERT(varchar(3), DATEPART(MONTH, S0.OrderDateTime) AS OrderMonth
Das ist offensichtlich falsch, wie ich bekomme
Falsche Syntax in der Nähe von 'AS'
Botschaft. Was ist die richtige Syntax für meine Abfrage?
sql
sql-server-2008
type-conversion
Casey DiBroaggio
quelle
quelle
AS
CONVERT(varchar(3), DATEPART(MONTH, S0.OrderDateTime)) AS OrderMonth
Antworten:
Dadurch erhalten Sie den vollständigen Namen des Monats.
select datename(month, S0.OrderDateTime)
Wenn Sie nur die ersten drei Buchstaben möchten, können Sie dies verwenden
select convert(char(3), S0.OrderDateTime, 0)
quelle
Hast du es versucht
DATENAME(MONTH, S0.OrderDateTime)
?quelle
Veränderung:
Zu:
quelle
DATENAME
.DATEPART
würde es nicht tun.Versuche dies:
SELECT LEFT(DATENAME(MONTH,Getdate()),3)
quelle
Wählen Sie
SUBSTRING (convert(varchar,S0.OrderDateTime,100),1,3)
aus Ihrem Tabellennamenquelle
In SQL Server 2012 ist die Verwendung möglich
FORMAT(@mydate, 'MMMM') AS MonthName
quelle
Dies gibt Ihnen, was Sie verlangen:
select convert(varchar(3),datename(month, S0.OrderDateTime))
quelle
SELECT MONTHNAME( `col1` ) FROM `table_name`
quelle
Ohne db zu treffen, können wir alle Monatsnamen abrufen.
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
quelle
im Grunde das ...
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)
quelle
DECLARE @iMonth INT=12 SELECT CHOOSE(@iMonth,'JANUARY','FEBRUARY','MARCH','APRIL','MAY','JUNE','JULY','AUGUST','SEPTEMBER','OCTOBER','NOVEMBER','DECEMBER')
quelle