比较SQL Server中的日期

时间:2017-02-26 21:02:53

标签: 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'转换为日期时间变量?如果是这样我该怎么转换呢?

3 个答案:

答案 0 :(得分:1)

是。像这样:

... WHERE CAST('2016-01-15' AS DATE) BETWEEN ...

除非它真的是一个约会时间。

答案 1 :(得分:1)

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

您可以使用CAST or CONVERT

答案 2 :(得分:1)

你应该将你的字符串转换/转换为日期,因为它取决于服务器的语言是否有效。

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

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