Даты по локальному времени и по UTC

Хранить даты в БД лучше всего по UTC, это неоспоримый факт. Но как сделать выборку из базы по локальному времени, если в базе всё хранится по UTC? На самом деле довольно просто:
Во-первых, вытаскиваем смещение по UTC для даты по нужному часовому поясу:

$date_local = '2013-01-01';
$date_utc = date_create($date_local);
$date = new DateTime($date_local, new DateTimeZone('UTC'));
$time_zone = new DateTimeZone('Europe/Moscow');
$date->setTimezone($time_zone);
$date = date_format($date, 'Y-m-d H:i:s');
$date = date_create($date);
$interval = date_diff($date_utc, $date);
$offset = $interval->h;
if ($interval->invert) {
    $offset = 0-$offset;
}

Здесь например для 2013-го года, смещение будет = 4, для 2017-го = 3.
Теперь делаем выборку:

SELECT * FROM `stuff` WHERE DATE_ADD(`date`, INTERVAL $offset HOUR) LIKE '2013-01-01%'