thembale Ответов: 1

Как извлечь месяц из поля даты в 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

Вы должны использовать правильные типы даты/времени, которые позволяют получить прямой доступ к отдельным элементам даты.

1 Ответов

Рейтинг:
1

RickZeeland

SELECT MONTH('2014-02-31')
Видеть: Месяц (Transact-SQL) | Microsoft Docs[^]