3.4w+
社区成员
表中有begintime和endtime 包含信息为 2020-03-28 12:00:09
怎样编写存储过程可以输入一个时间得到从开始到结束间含有这段时间所在行的全部数据
--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([begintime] DateTime,[endtime] DateTime)
Insert #T
select '2020-03-28 12:00:09','2020-03-29 12:00:09' union all
select '2020-03-01 12:00:09','2020-03-02 12:00:09'
Go
--测试数据结束
DECLARE @time DATETIME = '2020-03-28 12:00:09'
Select * from #T WHERE @time BETWEEN begintime AND endtime
是输入一个时间,还是日期来索引要的记录?
declare @BeginDt nvarchar(10) ='起始日期',
@EndDt nvarchar(10) ='结束日期',
@BeginTime nvarchar(8) ='起始时间',
@EndTime nvarchar(8) ='结束时间'
if (@BeginDt !='' and @EndDt !='')
begin
select * from [表名] where convert(date,beginTime,120) =@BeginDt and convert(date,endTime,120) =@EndDt
end
if(@BeginTime !='' and @EndTime !='')
begin
select * from [表名] where convert(varchar(8),beginTime,108) =@BeginTime and convert(varchar(8),endTime,108) =@EndTime
end