Usando SQL Server 2008
, tengo una consulta que se usa para crear una vista y estoy tratando de mostrar el nombre de un mes en lugar de un número entero.
En mi base de datos, datetime
está en una columna llamada OrderDateTime
. Las líneas de la consulta que devuelven la fecha son:
DATENAME(yyyy, S0.OrderDateTime) AS OrderYear,
DATEPART(MONTH, S0.OrderDateTime) AS OrderMonth
Esto devuelve una columna de años y una columna de meses como números enteros. Quiero devolver los nombres de los meses (Jan, Feb, etc
). He intentado:
CONVERT(varchar(3), DATEPART(MONTH, S0.OrderDateTime) AS OrderMonth
Obviamente, esto es incorrecto, ya que obtengo
Sintaxis incorrecta cerca de 'AS'
mensaje. ¿Cuál es la sintaxis adecuada para mi consulta?
sql
sql-server-2008
type-conversion
Casey DiBroaggio
fuente
fuente
AS
-CONVERT(varchar(3), DATEPART(MONTH, S0.OrderDateTime)) AS OrderMonth
Respuestas:
Esto le dará el nombre completo del mes.
select datename(month, S0.OrderDateTime)
Si solo desea las primeras tres letras, puede usar esta
select convert(char(3), S0.OrderDateTime, 0)
fuente
¿Usted ha intentado
DATENAME(MONTH, S0.OrderDateTime)
?fuente
Cambio:
A:
fuente
DATENAME
.DATEPART
no lo haría.Prueba esto:
SELECT LEFT(DATENAME(MONTH,Getdate()),3)
fuente
Seleccione
SUBSTRING (convert(varchar,S0.OrderDateTime,100),1,3)
de su nombre de tablafuente
En SQL Server 2012 es posible utilizar
FORMAT(@mydate, 'MMMM') AS MonthName
fuente
Esto le dará lo que está solicitando:
select convert(varchar(3),datename(month, S0.OrderDateTime))
fuente
SELECT MONTHNAME( `col1` ) FROM `table_name`
fuente
Sin presionar db, podemos buscar el nombre de todos los meses.
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
fuente
básicamente esto ...
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)
fuente
DECLARE @iMonth INT=12 SELECT CHOOSE(@iMonth,'JANUARY','FEBRUARY','MARCH','APRIL','MAY','JUNE','JULY','AUGUST','SEPTEMBER','OCTOBER','NOVEMBER','DECEMBER')
fuente