Asp.net 比较SQL Server中的日期

Asp.net 比较SQL Server中的日期,asp.net,sql-server,Asp.net,Sql Server,我正在构建一个连接到SQL Server 2008 R2的ASP.NET应用程序。我在这上面放了个屁。我试图在用户选择的日期之间获取一些记录 应用程序构建sql语句并将其发送到服务器,然后等待记录返回。SQL语句如下所示 SELECT * From policy pp where 20160115 between pp.policy_begin_date and pp.policy_end_date 它返回所有记录 是否需要将“20160115”转换为日期时间变量?如果是,我该如何转换它?是。

我正在构建一个连接到SQL Server 2008 R2的ASP.NET应用程序。我在这上面放了个屁。我试图在用户选择的日期之间获取一些记录

应用程序构建sql语句并将其发送到服务器,然后等待记录返回。SQL语句如下所示

SELECT * From policy pp where 20160115 between pp.policy_begin_date and pp.policy_end_date
它返回所有记录

是否需要将“20160115”转换为日期时间变量?如果是,我该如何转换它?

是。像这样:

... WHERE CAST('2016-01-15' AS DATE) BETWEEN ...
除非是约会时间

SELECT * 
From policy pp 
where cast('20160115' as datetime) between pp.policy_begin_date and pp.policy_end_date

您可以使用

您应该将字符串转换为日期,因为它取决于服务器的语言

最好的方法是使用convert并提供有关语言的信息:

convert(date[time], '20160115', 112)