将查询语句写成:select user_id,brush_datetime from brush_evening where brush_datetime = '2005-9-21'
convert(varchar,brush_datetime ,120) like '%2005-09-21%' 或者 datediff(day,brush_datetime ,'2005-9-21')=0
我写了个查询语句,目的是将所有2005-9-21的记录提取出来: select user_id,brush_datetime from brush_evening where brush_datetime like '2005-9-21' 可查询的结果却是0,不知为什么?like '2005-9-21'等价于='2005-9-21' 你的后面有跟着时分秒,当然没有结果!like '2005-9-21%' 使用索引 like '%2005-9-21' 不使用索引 用 like '%2005-9-21%' 查询时,查询耗时和字段值总长度成正比既然都是开头为2005-9-21就用like '2005-9-21%',不用like '%2005-9-21%'
日期判断用大小吧,字符判断才用like
select * from dbo.Tbl1 where aDAT like cast( '2004-05-06%' as varchar(10)) select * from Tbl1 where aDAT like '%2004%' and aDAT like '%06%' and aDAT like '%09%' select * from dbo.Tbl1 where aDAT like CONVERT(varchar, '%2005-06-01%',120)
convert(varchar,brush_datetime ,120) like '2005-09-21%' 就可以了
select user_id,brush_datetime from brush_evening where brush_datetime like '2005-9-21'
可查询的结果却是0,不知为什么?like '2005-9-21'等价于='2005-9-21'
你的后面有跟着时分秒,当然没有结果!like '2005-9-21%' 使用索引
like '%2005-9-21' 不使用索引
用 like '%2005-9-21%' 查询时,查询耗时和字段值总长度成正比既然都是开头为2005-9-21就用like '2005-9-21%',不用like '%2005-9-21%'
select * from dbo.Tbl1 where aDAT like cast( '2004-05-06%' as varchar(10))
select * from Tbl1 where aDAT like '%2004%' and aDAT like '%06%' and aDAT like '%09%'
select * from dbo.Tbl1 where aDAT like CONVERT(varchar, '%2005-06-01%',120)
就可以了