SQL:convert类型转换

来源:百度知道 编辑:UC知道 时间:2024/05/07 13:30:32
declare @now varchar(16)
set @now=left(getdate(),16)
if exists(
select * from T1
where GOTIME like @now+'%'
)
我需要查找出GOTIME与现在时间相近的记录。
GOTIME的格式是DATETIME。2007-1-10 10:48:19
现在问题是,如果到10月份,时间变成2007-10-10 10:48:19这样就多了一位了。或者变成1月1日也少了一位了。
有方法截取准确么?
set @now=convert(varchar(16),GetDate(),120) 不行。。
declare @now varchar(16)
set @now=convert(varchar(16),GetDate(),120)
if exists(
select * from T1
where CONVERT(varchar(16), gotime,120) like @now
)
这个搞定了

你可以考虑用datediff()函数来做
if exists(
select top 1 * from T1
order by datediff(ss,GOTIME,getdate())
)
就是这个思想 排序取第一个, 是升序还是降序你自己研究下

你可以对时间排序啊,取gotime最近的上(下)两条就可以了啊!