我需要检查具有一系列日期的发票信息。
即:07-01-2013 至 07-31-2013。
我通常会使用带有between函数的选择查询。但现在我想让系统根据系统日期自动识别一个范围。我需要查询基本上是这样思考的。今天是 8 月 2 日。我必须掌握 8 月 1 日至 2 日之间的所有发票。从现在起的10天内。系统仍会识别它是 8 月,并给我 8 月 1 日至 12 日之间的发票。这可以通过日期函数来完成吗?还; 我也必须对前一年有相同的逻辑。
我需要检查具有一系列日期的发票信息。
即:07-01-2013 至 07-31-2013。
我通常会使用带有between函数的选择查询。但现在我想让系统根据系统日期自动识别一个范围。我需要查询基本上是这样思考的。今天是 8 月 2 日。我必须掌握 8 月 1 日至 2 日之间的所有发票。从现在起的10天内。系统仍会识别它是 8 月,并给我 8 月 1 日至 12 日之间的发票。这可以通过日期函数来完成吗?还; 我也必须对前一年有相同的逻辑。
你可以用日期数学很容易地做到这一点。
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
SELECT *
FROM YourTable
WHERE DateColumn >= DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE()),0)
AND DateColumn <= DATEADD(DAY,DATEDIFF(DAY,0,GETDATE()),0)
WHERE YourDateColumn Between DATEADD(d, -1 * DAY(GETDATE()), GETDATE()) And GETDATE()
今天第一次送你