繁体   English   中英

从日期时间开始的当前月份和当前年份的特定日期

[英]Specific day of current month and current year from date time SQL Server 2005

大家好,我想在今天之前从发票和客户中搜索数据,我使用DateDiff()GETDATE()函数作为示例,例如两个表

1个客户

 - ID   int
 - Name Varcher

2张发票

 - ID int
 - ClientID int
 - date  Datetime
 - Total  money

询问

 Select * from client c 
 inner join invoice i on c.id = i.ClientID 
 WHERE DateDiff(dd, i.date, getdate()) = 0

如果当前月份是08且当前年份是2010,我想按日期月份和当前年份的特定日期选择查询,我想写每月的任何一天, 谢谢大家的帮助

这是一种也可以使用索引的方法

where i.date >= DATEADD(Day, DATEDIFF(Day, 0, GETDATE()), 0)
and i.date < DATEADD(Day, DATEDIFF(Day, 0, GETDATE()), 1)

从当前月份和年份中特定日期选择记录的最简单方法是声明一个分配给指定日期,月份和年份的datetime变量,然后用该变量替换查询中的getdate() ,如下所示:

declare @date datetime 

select @date = '10-Aug-2010'

Select * from client c 
inner join invoice i on c.id = i.ClientID 
WHERE DateDiff(dd, i.date, @date) = 0

编辑:要在当月的当月指定日期运行查询,请尝试以下操作:

declare @day integer

select @day = 10

Select * from client c 
inner join invoice i on c.id = i.ClientID 
WHERE DateDiff(dd, i.date, dateadd(dd,@day-datepart(dd,getdate()),getdate())) = 0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM