Я храню месяцы в SQL Server как 1,2,3,4, … 12. Я хотел бы отобразить их как январь, февраль и т. Д. Есть ли в SQL Server такая функция, как MonthName (1) = январь? Я пытаюсь избежать заявления CASE, если это возможно.
Немного хакерский, но должен работать:
SELECT DATENAME(month, DATEADD(month, @mydate-1, CAST('2008-01-01' AS datetime)))
Я думаю, что это лучший способ получить название месяца когда у вас есть номер месяца
Select DateName( month , DateAdd( month , @MonthNumber , 0 ) - 1 )
Или же
Select DateName( month , DateAdd( month , @MonthNumber , -1 ) )
SELECT DATENAME(month, GETDATE()) AS 'Month Name'
SUBSTRING('JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC ', (@intMonth * 4) - 3, 3)
Используйте лучший способ
Select DateName( month , DateAdd( month , @MonthNumber , -1 ))
Это очень просто.
select DATENAME(month, getdate())
выходной: январь
Следующие работы для меня:
CAST(GETDATE() AS CHAR(3))
в дополнение к оригиналу
SELECT DATENAME(m, str(2) + '/1/2011')
вы можете сделать это
SELECT DATENAME(m, str([column_name]) + '/1/2011')
таким образом вы получите имена для всех строк в таблице. где [column_name] представляет целочисленный столбец, содержащий числовое значение от 1 до 12
2 представляет любое целое число, по строке контакта я создал дату, где я могу извлечь месяц. «/ 1/2011» может быть любой датой
если вы хотите сделать это с переменной
DECLARE @integer int;
SET @integer = 6;
SELECT DATENAME(m, str(@integer) + '/1/2011')