sql查询时间段内的信息

前端传递字符串类型开始时间和结束时间,后端根据开始时间和结束时间取出对应日期的所有数据,数据库的时间是字符串类型
字符串类型日期可以直接在SQL比吗?

温馨提示:若问题解决了,望给个采纳,谢谢!若有其他疑问随时咨询
1、效果如下

img

2、语句如下


--创建标
create table test(
    datavalue varchar(50),
    timevalue varchar(50)
)

--模拟50条记录
declare @index int
declare @timevalue varchar(50)
set @index=0
while @index<50 begin
    set @index+=1
    set @timevalue=convert(varchar(8),getdate(),120)+convert(varchar,convert(int,rand()*20))
    insert into test(datavalue,timevalue)
    values(@index,@timevalue)
end

--根据传入的字符串时间查询范围记录
declare @startTime varchar(10)
declare @endTime varchar(10)
set @startTime='2022-03-17'
set @endTime='2022-03-19'

select * from test 
where timevalue>=@startTime and timevalue<=@endTime
order by convert(datetime,timevalue) asc

不了解你在说什么。

对于sql而言,自然要看数据库中地类型是什么类型了,如果是datetime类型,那就可以直接对比;如果是varchar(也就是字符串),那自然不行了。

格式化字符串的日期格式,可以用between and 来查询日期区间

可以

字符串比不了

不了解你在说什么。

对于sql而言,自然要看数据库中地类型是什么类型了,如果是datetime类型,那就可以直接对比;如果是varchar(也就是字符串),那自然不行了