SELECT * FROM mytable
WHERE (mydate = '2011-2-11 11:23:00')
数据库中有该记录却读取不到,用<可以找到比该记录早的记录插入的时候用DateTime now=DataTime.Now插入,然后在使用
SELECT * FROM mytable
WHERE (mydate = '"+now+"')就找不到,怎么处理应该?
WHERE (mydate = '2011-2-11 11:23:00')
数据库中有该记录却读取不到,用<可以找到比该记录早的记录插入的时候用DateTime now=DataTime.Now插入,然后在使用
SELECT * FROM mytable
WHERE (mydate = '"+now+"')就找不到,怎么处理应该?
--因为精确到秒或者毫秒了。你可以:
SELECT * FROM mytable
WHERE convert(varchar(19),mydate,120) = '2011-02-11 11:23:00'
select * from mytable where convert(varchar(10),mydate,120)=convert(varchar(10),getdate(),120)
declare @date datetime
set @date = '2011-2-11 11:23:00'SELECT * FROM mytable
WHERE convert(varchar(20),mydate,112)=convert(varchar(20),@date,112) and convert(varchar(20),mydate,108)=convert(varchar(20),@date,108)
WHERE (mydate = '2011-2-11 11:23:00')
数据库中有该记录却读取不到,用<可以找到比该记录早的记录
这有可能??
先插入,后查询,插入时的Now,当然比查询时的Now早啊!
WHERE DATEDIFF(DAY,COL_DATA,'2011-1-1')=0
select mydate,datediff(ms,mydate,getdate()),getdate()
from mytable你可以用上面的语句查出表中 mydate和当前时间的毫秒差
你5分钟后查询时候,now是'2011-2-11 11:28:00'这两个时间明显不相等的。另外datetime是可以用=比较的
if (cast('2011-1-11 11:11:11.000' as datetime) = cast('2011-1-11 11:11:11' as datetime))
begin
print 1
end
declare @endDateTime datetime =dateadd(SECOND,1,@startDateTime)
select @startDateTime,@endDateTime
select * from mytable where mydate>=@startDateTime and mydate<@endDateTime可以有效的利用到索引