У меня есть таблица с полем типа date в базе данных MySQL. Мой пользователь помещает дату в поле (формат дд-мм-гггг), которое я конвертирую в гггг-мм-дд для вставки в базу данных. Это отлично работает. Я могу видеть дату там как (например) 2012-04-04.
Моя проблема в том, что я затем выбираю эту запись, преобразовываю дату в формат, который я хочу отобразить (дд-мм-гггг), и получаю 03-04-2012. Я понимаю почему, потому что моя база данных настроена на UTC, однако пользователь работает по берлинскому времени, поэтому 04-04-2012 00:00 в Берлине - 03-04-2012 23:00 UTC.
Проблема означает, что если я затем сохраню отображаемую дату (03-04-2012), в следующий раз, когда я ее увижу, она отобразится как 02-04-2012, потому что я сохранил только дату, и поэтому система принимает Снова 00:00.
Я не вижу другого выхода, кроме как установить его как тип даты-времени, а не как тип даты, однако я бы не стал этого делать, поскольку время (по разным причинам) хранится в отдельном поле. Есть предложения?