2017-02-26 188 views
1

我構建了一個連接到SQL Server 2008 R2的ASP.NET應用程序。我在這個上有個放屁。我正在嘗試在用戶選擇的日期之間獲取一些記錄。SQL Server比較日期

應用程序構建一條sql語句並將其發送到服務器並等待記錄的返回。 SQL語句如下所示。

SELECT * From policy pp where 20160115 between pp.policy_begin_date and pp.policy_end_date 

它返回所有記錄。

我是否需要將'20160115'轉換爲日期時間變量?如果是的話,我該如何轉換?

回答

1

是的。像這樣:

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

除非它確實是一個日期時間。

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

,因爲它取決於服務器的語言,如果它的工作原理可以使用CAST or CONVERT

1

你要拋棄/你的字符串轉換爲日期。

最好的辦法是使用convert並提供有關語言的信息:

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