Как извлечь месяц из поля даты в SQL
У меня есть имя поля даты как "InvoiceDate" в моей таблице, в которой есть информация о дате, например "20140231", я хочу получить месяц из этого поля даты, чтобы я мог сгруппировать свою запись за квартал, чтобы увидеть прикрепленный запрос, который я пробовал, в настоящее время поле даты жестко закодировано, как вы видите в запросе.
Не могли бы вы пожалуйста помочь как я могу получить месяц на этой записи
"20140231",
Что я уже пробовал:
Вот что я попробовал
SELECT TOP 1000 [Advise no] ,[Amount] ,[Date] ,[Bas Fund Description] ,[Invoice Date] (MONTH, DATEDIFF(MONTH, 0, [Invoice Date]), 0) AS months , CASE WHEN [Invoice Date] BETWEEN 20170401 AND 20170631 THEN 'Q1' WHEN [Invoice Date] BETWEEN 20170701 AND 20170931 THEN 'Q2' WHEN [Invoice Date] BETWEEN 20171001 AND 20171231 THEN 'Q3' WHEN [Invoice Date] BETWEEN 20180101 AND 20180331 THEN 'Q4' WHEN [Invoice Date] Is Null THEN 'Null' END AS QuarterPeriod ,[Valuation Date] ,[qgs_geometry] ,[qgs_fid] ,[ProvinceName] FROM [DOD].[dbo].[View_DPW_PACE]
Richard MacCutchan
Вы должны использовать правильные типы даты/времени, которые позволяют получить прямой доступ к отдельным элементам даты.