用于获取最近3个月数据的SQL查询

时间:2014-02-20 15:26:04

标签: sql sql-server sql-server-2008 date select

如何获得今天的日期并将其转换为01/mm /yyyy格式并从3个月前的交货月份中获取数据?表已包含01/mm/yyyy的交付月份。

4 个答案:

答案 0 :(得分:65)

SELECT * 
FROM TABLE_NAME
WHERE Date_Column >= DATEADD(MONTH, -3, GETDATE()) 

Mureinik建议的方法将返回相同的结果,但这样做可以使您的查询受益于Date_Column上的任何索引。

或者您可以查看过去90天。

SELECT * 
FROM TABLE_NAME
WHERE Date_Column >= DATEADD(DAY, -90, GETDATE()) 

答案 1 :(得分:11)

最新版本的mysql不支持DATEADD而是使用语法

DATE_ADD(date,INTERVAL expr type)

要使用最近3个月的数据,

DATE_ADD(NOW(),INTERVAL -90 DAY) 
DATE_ADD(NOW(), INTERVAL -3 MONTH)

答案 2 :(得分:6)

我使用datediff,而不关心格式转换:

SELECT *
FROM   mytable
WHERE  DATEDIFF(MONTH, my_date_column, GETDATE()) <= 3

答案 3 :(得分:0)

过去3个月

SELECT DATEADD(dd,DATEDIFF(dd,0,DATEADD(mm,-3,GETDATE())),0)

今天

SELECT DATEADD(dd,DATEDIFF(dd,0,GETDATE()),0)