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