gpt4 book ai didi

sql - 在 MS SQL/SQL Server 2005 中精确限制日期范围

转载 作者:行者123 更新时间:2023-12-05 09:00:35 25 4
gpt4 key购买 nike

我想限制报告返回从日期 A 到日期 B 的记录。这就是我一直在做的:

declare @startDate varchar(20)
declare @endDate varchar(20)
set @startDate = '01/01/2008'
set @endDate = '04/01/2008'
-- test what are the start and end dates
select min(date),max(date) from view_Inspections
where date between @startDate and @endDate

... 我被告知返回了从 1 月 1 日上午 12 点到 3 月 31 日晚上 11:59 的记录(如果没有指定时间,则默认为午夜)。但我注意到一个差异,即如果一条记录的时间为 00:00:00,它将成为该集合的一部分。

是否有更准确的方法可以准确返回我想要的日期范围?*

我尝试使用时间:

declare @startDate varchar(20)
declare @endDate varchar(20)
set @startDate = '01/01/2008 00:00:00'
set @endDate = '04/01/2008 11:59:59'
-- test what are the start and end dates
select min(date),max(date) from view_Inspections
where date between @startDate and @endDate

...但我注意到一些奇怪的事情:SQL Server 会将百分之一秒四舍五入。所以如果我使用晚于 11:59:29 的任何时间,我就会得到 4 月 1 日的记录(哈!愚人节记录!grr)。这是为什么?

  • (我确信有。我是新手。感谢您的帮助!)

最佳答案

总有一个简单的选择:

declare @startDate varchar(20)
declare @endDate varchar(20)
set @startDate = '01/01/2008'
set @endDate = '04/01/2008'

-- test what are the start and end dates
select min(date),max(date) from view_Inspections
where date >= @startDate
and date < @endDate

关于sql - 在 MS SQL/SQL Server 2005 中精确限制日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/414276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com