operaciones - obtener semestre sql server
Devolver el nombre del mes en la consulta de SQL Server (10)
Utilizando SQL Server 2008
, tengo una consulta que se utiliza 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 en la consulta que devuelve 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 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
Sintaxis incorrecta cerca de ''AS''
mensaje. ¿Cuál es la sintaxis adecuada para mi consulta?
¿Has probado DATENAME(MONTH, S0.OrderDateTime)
?
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)
Cambio:
CONVERT(varchar(3), DATEPART(MONTH, S0.OrderDateTime) AS OrderMonth
A:
CONVERT(varchar(3), DATENAME(MONTH, S0.OrderDateTime)) AS OrderMonth
En SQL Server 2012, es posible usar FORMAT(@mydate, ''MMMM'') AS MonthName
Esto le dará el nombre completo del mes.
select datename(month, S0.OrderDateTime)
Si solo quieres las primeras tres letras puedes usar esto
select convert(char(3), S0.OrderDateTime, 0)
Esto le dará lo que está solicitando:
select convert(varchar(3),datename(month, S0.OrderDateTime))
Prueba esto:
SELECT LEFT(DATENAME(MONTH,Getdate()),3)
Seleccione SUBSTRING (convert(varchar,S0.OrderDateTime,100),1,3)
de su nombre de tabla
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
SELECT MONTHNAME( `col1` ) FROM `table_name`