Получить записи прошлого месяца на сервере SQL - PullRequest
64 голосов
/ 15 сентября 2009

Я хочу получить записи за последний месяц, основываясь на моей таблице в базе данных [member] поле "date_created".

Что такое sql для этого?

Для уточнения, в прошлом месяце - с 8 января 2009 года по 31 марта 2009 года

Если сегодня 3/1/2010, мне нужно получить записи с 1 января 2009 года по 31 декабря 2009 года.

Ответы [ 19 ]

1 голос
/ 15 сентября 2009
select * from [member] where DatePart("m", date_created) = DatePart("m", DateAdd("m", -1, getdate())) AND DatePart("yyyy", date_created) = DatePart("yyyy", DateAdd("m", -1, getdate()))
1 голос
/ 12 марта 2013
WHERE 
    date_created >= DATEADD(MONTH, DATEDIFF(MONTH, 31, CURRENT_TIMESTAMP), 0)
    AND date_created < DATEADD(MONTH, DATEDIFF(MONTH, 0, CURRENT_TIMESTAMP), 0)
1 голос
/ 09 сентября 2011
DECLARE @StartDate DATETIME, @EndDate DATETIME    
SET @StartDate = DATEADD(mm, DATEDIFF(mm, 0, getdate()) - 1, 0)    
SET @EndDate = dateadd(dd, -1, DATEADD(mm, 1, @StartDate))

SELECT * FROM Member WHERE date_created BETWEEN @StartDate AND @EndDate 

и еще одно обновление до решения mrdenny.
Это также дает точный последний день предыдущего месяца.

0 голосов
/ 30 мая 2019

Простой запрос, который работает для меня:

выберите * из таблицы, где DATEADD (месяц, 1, DATEFIELD)> = getdate ()

0 голосов
/ 23 марта 2019

Если вы ищете в прошлом месяце, попробуйте это,

SELECT
FROM  #emp 
WHERE DATEDIFF(MONTH,CREATEDDATE,GETDATE()) = 1

Если вы ищете в прошлом месяце, попробуйте это,

SELECT
FROM #emp
WHERE DATEDIFF(day,CREATEDDATE,GETDATE()) between 1 and 30
0 голосов
/ 30 апреля 2018

Способ устранения подобной проблемы заключался в добавлении Месяца к моей SELECT порции

Month DATEADD(day,Created_Date,'1971/12/31') As Month

и чем я добавил ГДЕ утверждение

Month DATEADD(day,Created_Date,'1971/12/31') = month(getdate())-1
0 голосов
/ 15 сентября 2015
DECLARE @StartDate DATETIME, @EndDate DATETIME
SET @StartDate = dateadd(mm, -1, getdate())
SET @StartDate = dateadd(dd, datepart(dd, getdate())*-1, @StartDate)
SET @EndDate = dateadd(mm, 1, @StartDate)
set @StartDate = DATEADD(dd, 1 , @StartDate)
0 голосов
/ 01 августа 2014
DECLARE @curDate INT = datepart( Month,GETDATE())
IF (@curDate = 1)
    BEGIN
        select * from Featured_Deal
        where datepart( Month,Created_Date)=12 AND datepart(Year,Created_Date) = (datepart(Year,GETDATE())-1)

    END
ELSE
    BEGIN
        select * from Featured_Deal
        where datepart( Month,Created_Date)=(datepart( Month,GETDATE())-1) AND datepart(Year,Created_Date) = datepart(Year,GETDATE())

    END 
0 голосов
/ 06 марта 2012

На сервере Sql за последний месяц:

select * from tablename 
where order_date > DateAdd(WEEK, -1, GETDATE()+1) and order_date<=GETDATE()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...