здесь нет необходимости использовать to_char()
метод. вы можете просто использовать этот запрос в своем классе реализации Dao.
по годам:
session.createSQLQuery("select * from table where year(date) = :year")
.setParameter("year",2018)
.list();
по месяцам
session.createSQLQuery("select * from table where month(date) = :month")
.setParameter("month",05)
.list();