LIKE语句的语法格式是:select * from 表名 where 字段名 like
对应值(子串),它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的。
假设有一个数据库中有个表table1,在table1中有两个字段,分别是name和sex二者全是字符型数据。现在要在姓名字段中查询以“张”字开头的记录,语句如下:
select * from table1 where name like
"张*"
如果要查询以“张”结尾的记录,则语句如下:
select *
from table1 where name like "*张"
这里用到了通配符“*”,可以说,like语句是和通配符分不开的。
like是字符串模糊匹配的关键字。你的字段是日期类型还是字符串类型?如果是日期型,那是肯定无法得到结果的。
如果一定要使用Like,可以先把日期转成字符串,在使用。
如果不使用like,可以把2011-1-1分别得到这天的开始和结束的两个时间,一个是0点,一个是23点59分59秒,然后使用between and语法。
不管怎么做,转化类型是一定的。
select * from table where convert(varchar(50), op_date, 120) like '2011-1-1%'
或者
select * from table where op_date between convert(datetime, '2011-1-1', 120) and convert(datetime, '2011-1-1 23:59:59', 120)
查询某一个时间范围内的日期,应该用 BETWEEN AND或者 >.. AND <...
因为BETWEEN AND是取闭区间的,所以上面的代码可以改成
select * from schedule where begintime >= '2007-12-19' and begintime <'2007-12-20'
如果楼主一定坚持要用LIKE查询,可以参考下面的方法:
select * from schedule where convert( varchar(32), begintime, 20 ) LIKE '2007-12-20%'
其中对 convert 不理解,可以参考 T-SQL语法
第3个参数值为20,代表ODBC 规范的yyyy-mm-dd hh:mm:ss(24h)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)