SQL — получить числовой день месяца / квартала

#sql #sql-server #sql-server-2005

#sql #sql-server #sql-server-2005

Вопрос:

Использование SQL Server 2005:

Как я могу получить числовой день месяца и день квартала в запросе?

 DECLARE @DATE DATETIME
SET @DATE = GETDATE()

SELECT DATEPART(dy, @DATE) AS DayOfYear
    --, <something> AS DayOfQuarter
    --, <something> AS DayOfMonth
    , DATEPART(dw, @DATE) AS DayOfWeek
  

Заранее спасибо!

Комментарии:

1. 1 Только что узнал несколько новых приемов работы с датами из ответа Кейда Ру на ваш вопрос, спасибо, хотя я ответил на половину из них.

Ответ №1:

 DECLARE @DATE DATETIME
SET @DATE = GETDATE()

SELECT DATEPART(dy, @DATE) AS DayOfYear
    , DATEDIFF(d, DATEADD(qq, DATEDIFF(qq, 0, @DATE), 0), @DATE)   1 AS DayOfQuarter
    , DAY(@Date) AS DayOfMonth
    , DATEPART(dw, @DATE) AS DayOfWeek
  

Ответ №2:

Что касается дня квартала, это потребует некоторого дальнейшего изучения с моей стороны. Несмотря на это, я предполагаю, что для дня месяца это будет просто сама дата:

 select DATEPART(D, @DATE)
  

Ответ №3:

 SELECT 
 DATEPART(year, '12:10:30.123')
,DATEPART(month, '12:10:30.123')
,DATEPART(day, '12:10:30.123')
,DATEPART(dayofyear, '12:10:30.123')
,DATEPART(weekday, '12:10:30.123');