2015-02-16 3 views
0

Пытается забрать некоторые Sql и смутить следующим примером. Кто-нибудь случится знать, почему:MySql Where Clause с подстановочными знаками

SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate, Customers.CustomerID 
From Orders 
Inner Join Customers 
ON Orders.CustomerID=Customers.CustomerID 
WHERE Orders.OrderDate LIKE '%6'; 

Случается вернуть более 100 записей с датой заказа, заканчивающийся в 1996 году, в то время как с другой стороны:

SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate, Customers.CustomerID 
From Orders 
Inner Join Customers 
ON Orders.CustomerID=Customers.CustomerID 
WHERE Orders.OrderDate LIKE '%96'; 

возвращает мне 0 записей. Я использую данные клиентов из w3schools. Я совершенно смущен, почему это не сработает.

+0

Какой тип данных 'Orders.OrderDate'? – Jens

+0

Выглядит как строка: 7/4/1996 например – mt88

ответ

4

Я подозреваю, что OrderDate - это поле Date или DateTime. Попробуйте это вместо:

WHERE 
YEAR(Orders.OrderDate) = 1996 
+1

Спасибо, что это сработало отлично. – mt88

+0

Без проблем, рад помочь. – Donal

+0

Но это все еще не отвечает на вопрос ... Мне любопытно, почему один запрос будет возвращать результаты, а другой - нет. – abl

Смежные вопросы