Different way to do a LIKE WHERE condition? I have a query which works fine:

  SELECT  
         month_date= month(SendTime) ,year_date =year(sendtime) ,MessageType
          ,COUNT(MessageType) AS MESSAGE_COUNT
  FROM Message
  WHERE year(SendTime)= 2014
      and messagetype NOT LIKE '%test%' 
      and messagetype NOT LIKE '%ANOTHER THING%' 
      and messagetype NOT LIKE '%STUFF%' 
  GROUP BY month(SendTime),year(sendtime), MessageType


What I notice is with having LIKE conditions it has made the 
the elapse time slower. 

With the above query it runs at elapsed time .550, without them .154.

Is there a different way I can be able to cut this time and make query faster? 

No messagetype is not index and i am not allow to change it.
Two things you can do:


Use SendTime &gt;= '20140101' AND SendTime &lt; '20150101' instead of the year(SendTime)= 2014. This makes the condition sargable and indexes can be used.
Add a composite index on (SendTime, MessageType) so the query does not have to do a full table scan but only a (partial) index scan.


The query rewritten:

SELECT  
    month_date = month(SendTime),
    year_date = year(SendTime),
    MessageType,
    message_count = COUNT(MessageType) 
FROM Message
WHERE SendTime &gt;= '20140101' AND SendTime &lt; '20150101'
  AND MessageType NOT LIKE '%test%' 
  AND MessageType NOT LIKE '%ANOTHER THING%' 
  AND messagetype NOT LIKE '%STUFF%' 
GROUP BY year(SendTime), month(SendTime), MessageType ;




Another option would be to add computed columns on year(SendTime) and month(SendTime) and an index on year(SendTime), month(SendTime), MessageType - and keep the original query!