使用SQL日期函数自动执行查询

时间:2013-08-02 20:38:06

标签: sql sql-server date

我需要检查一系列日期的发票信息。

,即:07-01-2013至07-31-2013

我通常会使用带 功能的选择查询。但现在我希望系统根据系统日期自动识别范围。我需要查询基本上这样想。今天是8月2日。我必须抓住8月1日到2日之间的所有发票。从现在开始的10天内。该系统仍将识别它是8月份,并给我8月1日至12日之间的发票。这可以通过Date函数完成吗?也;我也必须对前一年的时期采用相同的逻辑。

3 个答案:

答案 0 :(得分:1)

您可以使用日期数学轻松完成此任务。

select *
from mytable
where 
    dt >= DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE()),0) --Beg of current month
    and dt < DATEADD(MONTH,1,DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE()),0)) --Beg. of next month

前期:

select *
from mytable
where 
    dt >= DATEADD(MONTH,-1,DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE()),0)) --Beg last month
    and dt < DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE()),0) --Beg current month

答案 1 :(得分:1)

SELECT *
FROM YourTable
WHERE DateColumn >= DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE()),0)
AND DateColumn <= DATEADD(DAY,DATEDIFF(DAY,0,GETDATE()),0)

答案 2 :(得分:0)

WHERE YourDateColumn Between DATEADD(d, -1 * DAY(GETDATE()), GETDATE()) And GETDATE()

今天第1天到达