sql-server-2008 – 在SQL Server 2008中的日期和时间之间进行搜
发布时间:2020-12-12 08:30:49 所属栏目:MsSql教程 来源:网络整理
导读:我需要在日期和时间之间进行搜索. 例如,在日期:30/02/2007之间,时间:10:32和日期:21/06/2008,时间:14:19 这是最简单的查询是什么? 提前致谢. 解决方法 您应该查看SQL Server中可用的日期时间格式: http://msdn.microsoft.com/en-us/library/ms187928.as
我需要在日期和时间之间进行搜索.
例如,在日期:30/02/2007之间,时间:10:32和日期:21/06/2008,时间:14:19 这是最简单的查询是什么? 提前致谢. 解决方法您应该查看SQL Server中可用的日期时间格式: http://msdn.microsoft.com/en-us/library/ms187928.aspxyyyy-mm-dd hh:mi是你应该使用的: 尝试: SELECT * FROM Records WHERE DateCreated>='2007-02-30 10:32' AND DateCreated<='2008-06-21 14:19' 在上述查询中,如果DateCreated是datetime列,则字符串将被转换为datetime数据类型.并且查询将工作. 您可以创建datetime数据类型的局部变量,并使用以下查询: DECLARE @StartDate datetime,@EndDate datetime SELECT @StartDate='2007-02-30 10:32',@EndDate='2008-06-21 14:19' SELECT * FROM Records WHERE DateCreated>=@StartDate AND DateCreated<=@EndDate 我喜欢使用< =,> =,或>因为它允许比BETWEEN更多的灵活性,并强制您考虑包括端点. 另一件需要考虑的事情是从一整天开始获取所有数据: DECLARE @StartDate datetime,@EndDate datetime --set the days you want SELECT @StartDate='2007-02-30 10:32',@EndDate='2008-06-21 14:19' --remove the time SELECT @StartDate=DATEADD(day,DATEDIFF(day,@StartDate),0),@EndDate=DATEADD(day,@EndDate),0) --get everything on '2007-02-30' up to the end of the day on '2008-06-21' SELECT * FROM Records WHERE DateCreated>=@StartDate AND DateCreated<@EndDate+1 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |