Верный ли подход, или можно выполнить работу с датой проще. В частности, необходимо выполнить выборку выборку полей из базы данных, значение даты у которых находится между началом и концом текущего дня, т.е от 00:00:00 до 00:00:00 нового дня. Так как планируется использование в разных временных зонах, использую UTC.
Вот так объявляю диапазон выборки
var startOfDay = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day, 0, 0, 0);
var endOfDay = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.AddDays(1).Day, 0, 0, 0);
Затем, делаю запрос к БД, где проверяю принадлежит ли дата у записи указанному диапазону. В БД дата хранится в формате UTC.
Нет, неверный.
Дата может измениться между обращениями к DateTime.UtcNow, поэтому ты можешь получить неверную дату (с ошибкой на день, месяц или год).
Всё же проще:
var startOfDay = DateTime.UtcNow.Date;
var endOfDay = startOfDay.AddDays(1);
Во-первых, этот код неправильно работает в последний день месяца: вы меняете день, но не месяц.
Во-вторых, можно проще:
var startOfDay = DateTime.UtcNow.Date;
var endOfDay = startOfDay.AddDays(1);
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости