我怎样才能获得上个月的日期
select * from table where date in ( last month )
我不想要过去30天 以及如何自动获得上个月
答案 0 :(得分:1)
select * from table
where month(date)=month(getdate())-1
答案 1 :(得分:1)
您可以使用此
Select * from table where date between @startdate and @enddate
或者
SELECT * FROM DATE_SAMPLE WHERE
DATEPART(YEAR, SAMPLE_DATE) = '2013' AND
DATEPART(MONTH,SAMPLE_DATE) = '01' AND
DATEPART(DAY, SAMPLE_DATE) = '01'
对你有用吗?
答案 2 :(得分:0)
修改强>
如果你的意思是从上个月开始。或者从特定日期开始的前一个月,您需要做这样的事情
SELECT DATEPART(MONTH, DATEADD(MONTH, -1, [Date]))
或者要获取一年中上个月的记录,你可以做这样的事情
SELECT * FROM Table
WHERE MONTH(Date) = DATEPART(MONTH, DATEADD(MONTH, -1, [Date]))
AND YEAR(Date) = DATEPART(YEAR, DATEADD(MONTH, -1, [Date])) --<-- or pass year for which year you are checking
使您的aquery SARGable (建议由t-clausen.dk提供)
select * from table
where date >=dateadd(m, datediff(m, 0, current_timestamp)-1, 0)
and date < dateadd(m, datediff(m, 0, current_timestamp)-1, 0)
使用date / datetime数据类型时
答案 3 :(得分:0)
您可以尝试使用between语句来获取特定日期:
Select * from table where date between '01-01-2014' and '14-01-2014'
答案 4 :(得分:0)
假设您希望所有项目的日期在上个月,即在今天和30/31天之前:
Select *
From Table
Where Date Between DATEADD(m, -1, GETDATE()) and GETDATE()