I would think the BETWEEN should be more efficient, as it will be reduced to a simple arithmetic comparison which can take full advantage of column indexing, whereas the LIKE will probably require a full table read, as each date column would have to be converted to a string before the LIKE comparison is done against the value.
PS: possibly somewhere in between would be using the YEAR() and MONTH() functions, e.g.:
...WHERE YEAR(col_name) = 2010 AND MONTH(col_name) = 1