Конвертировать дату только в месяц из заданного поля даты - PullRequest
0 голосов
/ 21 февраля 2020

Я хотел бы преобразовать один из моих столбцов даты в месяц

У меня есть значения столбцов как

пример:

select datecolumn from abc

datecolumn

jan-20
feb-20
mar-20
apr-20

Я бы хотел получить только месяц в форме

01
02
03
04

Ответы [ 4 ]

1 голос
/ 21 февраля 2020

Я бы использовал MONTH или DATEPART функции

SELECT DATEPART(month, '2014/04/28');

Результат: 4

0 голосов
/ 21 февраля 2020

Вы можете добавить '01 - 'в начало поля и затем использовать функцию DATEPART:

DECLARE @Month char(10) = 'Feb-20'
select DATEPART(MM,'01-'+@Month)

Если вы хотите, чтобы вывод состоял из двух символов, вы можете использовать функцию форматирования:

DECLARE @Month char(10) = 'Feb-20'
select FORMAT(DATEPART(MM,'01-'+@Month),'00')

Надеюсь, это поможет.

0 голосов
/ 21 февраля 2020

Не проверено и довольно схематично, но это может сработать:

select case when datecolumn like 'Jan%' then '01'
when datecolumn like 'Feb%' then '02'
when datecolumn like 'Mar%' then '03'
when datecolumn like 'Apr%' then '04'
when datecolumn like 'May%' then '05'
when datecolumn like 'Jun%' then '06'
when datecolumn like 'Jul%' then '07'
when datecolumn like 'Aug%' then '08'
when datecolumn like 'Sep%' then '09'
when datecolumn like 'Oct%' then '10'
when datecolumn like 'Nov%' then '11'
when datecolumn like 'Dec%' then '12'
end as datecolumn 
from abc
0 голосов
/ 21 февраля 2020

Типы данных не верны. Но вы можете создать новый столбец в нужном формате:

alter table t
    add datecol_mmmyy as (left(datename(month, datecol), 3) +'-' + datename(year, datecol));

Затем вы можете обратиться к datecol_mmmyy и получить нужный формат.

...