日期:2014-05-18  浏览次数:20620 次

问个关于数据库中时间的查询
现在数据库中有一表,表中有一列,存放的是时间,如"2008-03-24 11:11:11"
现在我给条件查的时候是给的 select * from test where time="2008-03-24"
也就是说查不出来,但我只要查这一天的,不用那么精确,请问我的查询语句怎么写,最好用模糊查询,而不想把数据库中的时间列在查的时候转换成"年月日"格式的.

------解决方案--------------------
SQL code
create function dbo.getr(@id varchar(10))
returns varchar(10)
as
begin
 declare @s varchar(10)
 set @s = ''
 select @s = c from tb where b = @id
 if @s  ='' return ''
 return dbo.getr(@s)
end
go
select a,dbo.getr(max(b)) from tb group by a

------解决方案--------------------
引用楼主 chome 的帖子:
现在数据库中有一表,表中有一列,存放的是时间,如"2008-03-24 11:11:11"
现在我给条件查的时候是给的 select * from test where time="2008-03-24"
也就是说查不出来,但我只要查这一天的,不用那么精确,请问我的查询语句怎么写,最好用模糊查询,而不想把数据库中的时间列在查的时候转换成"年月日"格式的.

------解决方案--------------------
不知道不转换成字符型,直接LIKE行不行
SQL code
select * from test where [time] like "2008-03-24"

------解决方案--------------------
SQL code
select * from test where time >= "2008-03-24" and time < "2008-03-25"

------解决方案--------------------
探讨
不知道不转换成字符型,直接LIKE行不行
SQL codeselect * from test where [time] like "2008-03-24"

------解决方案--------------------
SQL code


select * from test where convert(varchar(10),time,120)='2008-03-24'