Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 2008 查找两个日期之间的日期(小时和分钟)?在Sql server中?_Sql Server 2008 - Fatal编程技术网

Sql server 2008 查找两个日期之间的日期(小时和分钟)?在Sql server中?

Sql server 2008 查找两个日期之间的日期(小时和分钟)?在Sql server中?,sql-server-2008,Sql Server 2008,在sql中,我编写了一个select语句来查找日期。我在这里,包括时间,还有我的选择声明,就像这样 select * from test where ( ( (DATEDIFF (day,@dat1,req_frmdate)=0 or DATEDIFF (day,@dat2,req_todate)=0) and (DATEDIFF (HOUR,@dat1,req_frmdate)=0 or DATEDIFF (HOUR,@dat2,req

在sql中,我编写了一个select语句来查找日期。我在这里,包括时间,还有我的选择声明,就像这样

                  select * from test where           
(
(
(DATEDIFF (day,@dat1,req_frmdate)=0 or DATEDIFF (day,@dat2,req_todate)=0)
and
(DATEDIFF (HOUR,@dat1,req_frmdate)=0 or DATEDIFF (HOUR,@dat2,req_todate)=0)
and 
(DATEDIFF (MINUTE,@dat1,req_frmdate)=0 or DATEDIFF (MINUTE,@dat2,req_todate)=0)
)       
or
  (
( @dat1 between req_frmdate and req_todate) or
( @dat2 between req_frmdate and req_todate) or
(req_frmdate between @dat1 and @dat2) or
( req_todate between @dat1 and @dat2)
)       
        )
但是当我过了一段时间,它就不再考虑时间了。 这个问题正确吗?当我传递日期时,例如@date1='2013-02-20 09:00' 和@date2='2013-02-20 12:00',但我的数据库中没有关于这个日期和时间的记录 我的数据库中有一条记录,分别位于req_frmdate='2013-02-20 13:00'和req_todate='2013-02-20 16:00'

在我的表的屏幕截图中,当我通过两个日期时,我的表中有该记录
像@date1='2013-02-20 9:00'和@date2='2013-02-20 12:00'记录出现在我的select语句中,它不应该出现日期与我的查询不同。

假设您希望记录只显示,如果两者都在两个参数的日期之间,然后您可以使用
BETWEEN
子句:

DECLARE @dat1 DATETIME SET @dat1 ='2013-02-20 09:00.000'
DECLARE @dat2 DATETIME SET @dat2 ='2013-02-20 12:00.000'
SELECT * 
FROM test 
WHERE
   (req_frmdate BETWEEN @dat1 AND @dat2)
   AND (req_todate BETWEEN @dat1 AND @dat2)

确切的问题是什么?请附上您当前和期望的输出GIL,我编辑我的问题,我附上屏幕截图,如果我通过@date1='2013-02-20 13:00'和@date2='2013-02-20 16:00',其中记录有日期和时间如果我通过@date1='2013-02-20 09:00'和@date2='2013-02-20 11:00',记录不应该显示给我们