Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
自日期时间SQL Server 2005起的当前月份和当前年份的特定日期_Sql_Sql Server_Sql Server 2005_Tsql - Fatal编程技术网

自日期时间SQL Server 2005起的当前月份和当前年份的特定日期

自日期时间SQL Server 2005起的当前月份和当前年份的特定日期,sql,sql-server,sql-server-2005,tsql,Sql,Sql Server,Sql Server 2005,Tsql,大家好,我想在date之前搜索发票和客户机的数据我正在使用DateDiff()GETDATE()函数作为示例两个表 1个客户 - ID int - Name Varcher 2发票 - ID int - ClientID int - date Datetime - Total money 质疑 我想从日期时间开始选择按当前月份和当前年份的特定日期进行查询 如果当前月份是08,当前年份是2010,我想写下月份中的任意一天 谢谢大家帮助我这里有一种方法也可以使用索引 wher

大家好,我想在date之前搜索发票和客户机的数据我正在使用DateDiff()GETDATE()函数作为示例两个表

1个客户

 - ID   int
 - Name Varcher
2发票

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


我想从日期时间开始选择按当前月份和当前年份的特定日期进行查询 如果当前月份是08,当前年份是2010,我想写下月份中的任意一天
谢谢大家帮助我

这里有一种方法也可以使用索引

where i.date >= DATEADD(Day, DATEDIFF(Day, 0, GETDATE()), 0)
and i.date < DATEADD(Day, DATEDIFF(Day, 0, GETDATE()), 1)
其中i.date>=DATEADD(Day,DATEDIFF(Day,0,GETDATE()),0)
和i.date
这里有一种方法也可以使用索引

where i.date >= DATEADD(Day, DATEDIFF(Day, 0, GETDATE()), 0)
and i.date < DATEADD(Day, DATEDIFF(Day, 0, GETDATE()), 1)
其中i.date>=DATEADD(Day,DATEDIFF(Day,0,GETDATE()),0)
和i.date
从当前月份和年份的特定日期选择记录的最简单方法是声明分配给指定日期、月份和年份的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

从当前月份和年份的特定日期选择记录的最简单方法是声明分配给指定日期、月份和年份的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

如果当前月份为08,当前年份为2010,则我希望选择从日期时间开始按当前月份和当前年份的特定日期进行查询我希望将monthchange getdate()的任意日期写入任意日期,如果你想明天做'20100823'我想选择从日期时间按当前月份和当前年份的特定日期查询如果当前月份是08,当前年份是2010我想写monthchange getdate()到anydate的任意日期,如果你想明天做“20100823”,我知道,但是当前月份和当前年份是固定的,如果我一个月一个月地运行查询,则必须更改日期,这不是我想要的,当我运行查询时,从日期时间开始得到月份和年份,所以我只想在查询中写入日期谢谢,如果你有关于datetime、DateDiff()、Dateadd()、getdate()函数,但不发送MSDN我阅读了它,我需要更多和示例。感谢您的帮助,mei知道,但当前月份和当前年份已修复如果我在一个月后运行查询,则必须更改日期这不是我想要的,当我运行查询时,从日期时间开始获取月份和年份,因此我只想在查询中写入日期谢谢谢谢谢谢,如果您有任何关于datetime、DateDiff()、Dateadd()、getdate()的文章,这是真的函数,但不发送MSDN我阅读了它,我需要更多和示例。谢谢你的帮助