Я работаю над проектом, где есть куча дат, которые мне нужно хранить в базе данных (MySQL).Сохранить полную дату или просто год в базе данных
Проблема в том, что некоторые даты полны, но некоторые даты - всего лишь год.
Например, даты, как это:
- 20 января 1980
- 25 февраля 2012
Я использую функцию date()
и strtotime()
функции в PHP для преобразования дат в формате Y-m-d
. Полные даты конвертируются успешно, но даты всего лишь за год преобразуются в сегодняшнюю дату, что неверно.
Вопросов:
- Как успешно определить, является полная дата и которая только лишь год в PHP, а затем применить функцию
date()
иstrtotime()
только полную дату? - Как сохранить эти варианты (полная дата и только год) в базе данных? (если это возможно в одном столбце)
- При получении из базы данных, как узнать, заполнена ли дата или всего лишь год и отобразить ее соответственно?
Edit:
Confused. Я буду выполнять операции с датой, такие как сортировка по дате, которая будет включать как полные, так и только даты года. До:
- Хранить год как 1990-00-00 и проверять нули при извлечении?
- Храньте год как 1990-01-01 и еще одно булевское поле isYear?
- Сохранить год, месяц и день как целые числа в разных столбцах?
Использовать PHP '' DateTime' и MySQL 'DATETIME', не делайте этого беспорядочного материала из каменного века. – DanFromGermany
Многие варианты делают выбор более трудным :-) Не волнуйтесь. Ни один из трех приведенных вариантов не очень-то плох. Просто выберите тот, который, по вашему мнению, может быть лучшим и использовать его. –