То, как вы используете условие SQL :: Abstract, приведет к следующему условию:
WHERE username = ? AND date >= 'DATE_SUB(CURDATE(),INTERVAL 14 DAY)'
Если вы хотите использовать функции базы данных в предложении where, вам нужно использовать ссылку на скаляр , например:
date => { '>=' => \'DATE_SUB(CURDATE(),INTERVAL 14 DAY)' },
ProTip : если вы установите переменную среды DBIC_TRACE
в 1, DBIx :: Class будет печатать запросы, которые он генерирует, в STDERR ... таким образом, вы можете проверить, действительно ли он выполняет то, что вы хотите .