-2

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

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

我通常会使用带有between函数的选择查询。但现在我想让系统根据系统日期自动识别一个范围。我需要查询基本上是这样思考的。今天是 8 月 2 日。我必须掌握 8 月 1 日至 2 日之间的所有发票。从现在起的10天内。系统仍会识别它是 8 月,并给我 8 月 1 日至 12 日之间的发票。这可以通过日期函数来完成吗?还; 我也必须对前一年有相同的逻辑。

4

3 回答 3

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
于 2013-08-02T20:40:41.707 回答
1
SELECT *
FROM YourTable
WHERE DateColumn >= DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE()),0)
AND DateColumn <= DATEADD(DAY,DATEDIFF(DAY,0,GETDATE()),0)
于 2013-08-02T20:41:02.347 回答
0
WHERE YourDateColumn Between DATEADD(d, -1 * DAY(GETDATE()), GETDATE()) And GETDATE()

今天第一次送你

于 2013-08-02T20:42:37.383 回答