我有一张简单的桌子。
我正在尝试触发此表上的选择查询。
select *
from booking
where bookingdate like '%11%'
在输出中我希望显示两个记录。但是,令我惊讶的是,只显示了表中的最高记录。
这种行为很奇怪。是like
关键字在DateTime
类型的列上无法正常运行吗?
修改
但是,如果我尝试此操作(将DateTime
转换为Varchar
)
select *
from booking
where convert(varchar(50), BookingDate, 120) like '%11%'
有效!!
答案 0 :(得分:1)
对
DATETIME
的LIKE运算符没有直接支持 变量
您可以按照建议将其转换为varchar
select * from booking
where convert(varchar(50), BookingDate, 120) like '%11%'
此处如果您想查看月份,请使用DatePart
select * from booking
where DATEPART(M,BookingDate)=11
OR
您可以在构建的函数中使用datepart,datename等来检索您需要的内容