C# 特定日期间隔的sql查询

C# 特定日期间隔的sql查询,c#,.net,sql,database,C#,.net,Sql,Database,我有一个这样的数据库,我想搜索指定的时间间隔,比如1小时。例如,我想在所有日期的所有记录中查看上午7点到上午8点之间的记录。然后,我将使用每天的上午7点和上午8点进行进一步的处理。我怎样才能在C语言中做到这一点 您可以使用BETWEEN关键字 id name mydate 1 co 2011-02-10 07:25:02 2 Carl 2011-02-10 07:26:02 . . . 1000

我有一个这样的数据库,我想搜索指定的时间间隔,比如1小时。例如,我想在所有日期的所有记录中查看上午7点到上午8点之间的记录。然后,我将使用每天的上午7点和上午8点进行进一步的处理。我怎样才能在C语言中做到这一点

您可以使用BETWEEN关键字

id   name         mydate                   
1     co        2011-02-10 07:25:02  
2     Carl      2011-02-10 07:26:02
.
.
.
10000   Caroline  2011-02-18 22:44:08
这不是C语言特有的。如果您正在使用LINQ,请执行以下操作:

SELECT * FROM A WHERE mydate between '1/1/56 07:00:00' and '12/31/57 08:00:00'

您可以使用BETWEEN关键字

id   name         mydate                   
1     co        2011-02-10 07:25:02  
2     Carl      2011-02-10 07:26:02
.
.
.
10000   Caroline  2011-02-18 22:44:08
这不是C语言特有的。如果您正在使用LINQ,请执行以下操作:

SELECT * FROM A WHERE mydate between '1/1/56 07:00:00' and '12/31/57 08:00:00'
DATEPART是一个SQL函数,它获取给定日期值的日期的指定部分。 在上面的sql脚本中,@start和@end是开始时间的整数值,在上午7点到上午8点的情况下,@start=7和@end=8

基本上,您将从表中获取所有记录,这些记录的日期的小时成分等于7,或者日期的小时成分等于8,分钟成分等于0。这将获取上午7:00到上午8:00(含)之间的所有记录

DATEPART是一个SQL函数,它获取给定日期值的日期的指定部分。 在上面的sql脚本中,@start和@end是开始时间的整数值,在上午7点到上午8点的情况下,@start=7和@end=8



基本上,您将从表中获取所有记录,这些记录的日期的小时成分等于7,或者日期的小时成分等于8,分钟成分等于0。这应该是早上7:00到8:00之间的所有记录。

我想以编程方式做,我可能不知道确切的日期,我只考虑每一天的早上7点和早上8点,然后你需要动态地构建SQL。不是SQL问题。或者你可以使用一个程序。你是什么意思程序,你能解释一下吗?请看一个解释。我想以编程方式做它,我可能不知道确切的日期,我只考虑每一天的早上7点和早上8点,然后你需要动态地构建SQL。不是SQL问题。或者你可以使用一个过程。你说的过程是什么意思,你能解释一下吗?请看以获得解释。是的。它将选择该小时内的所有记录。不是在某一天。SQL Server的一个函数,您可以在查询中使用。当我尝试此操作时,,,,string query=从DATEPARThh、[mydate]>=6和DATEPARThh、[mydate]Yes的人员中选择日期。它将选择该小时内的所有记录。不是在某一天。SQL Server的一个函数,您可以在查询中使用。当我尝试此操作时,,,,string query=从DATEPARThh、[mydate]>=6和DATEPARThh、[mydate]的人员中选择日期是包含的还是独占的?上午7:00和上午8:00是否包括在上午7:00-8:00的范围内?是包含还是独占?7:00AM和8:00AM是否包含在07AM-08AM范围内?我在该行->data_adapter.Filldt中得到错误;错误表示没有为一个或多个必需参数提供值。如果我在excel文件中搜索,是否也可以使用DATEPART命令?您如何准确地输入SQL脚本?你能把你的密码寄出去吗?必须为@start和@end添加参数值。至于EXCEL,没有,但应该有一个等价的函数。我试着用字符串query=SELECT id,name FROM people,其中DATEPARThh,mydate=@start或DATEPARThh,mydate=at end,DATEPARTmi,mydate=0 ORDER BY mydate;如果我搜索excel文件而不是C中的数据库文件,那么等效函数是什么?我在该行->data_adapter.Filldt中得到错误;错误表示没有为一个或多个必需参数提供值。如果我在excel文件中搜索,是否也可以使用DATEPART命令?您如何准确地输入SQL脚本?你能把你的密码寄出去吗?必须为@start和@end添加参数值。至于EXCEL,没有,但应该有一个等价的函数。我试着用字符串query=SELECT id,name FROM people,其中DATEPARThh,mydate=@start或DATEPARThh,mydate=at end,DATEPARTmi,mydate=0 ORDER BY mydate;如果我搜索excel文件而不是C中的数据库文件,那么等效函数是什么?
SELECT [mydate] 
    FROM [table] 
    WHERE DATEPART(hh,[mydate]) >= 6 
        AND DATEPART(hh,[mydate]) <= 8 
    Order by DATEPART(hh,[mydate])
SELECT * FROM table 
WHERE DATEPART(hh, mydate) = @start
OR (DATEPART(hh, mydate) = @end AND DATEPART(mi, mydate) = 0)
ORDER BY mydate