Что следует учитывать перед сохранением отрицательных дат в MySQL? - PullRequest
1 голос
/ 14 июля 2009

Сейчас я работаю над проектом, который потребует от меня разрешения пользователям хранить отрицательные даты в базе данных. Эти даты могут охватывать многие тысячи лет до нашей эры, а также «сегодня». Я работал над многими проектами, в которых хранились даты, но все они были относительно недавними, и ни один из них не был отрицательным (BC).

Какие типы вещей я должен учитывать при работе с данным типом данных? Я полностью осведомлен о многих календарных сдвигах, которые произошли в истории, но я буду работать с современным календарем и не слишком беспокоиться о преобразованиях. Тем не менее, любая информация о конверсиях будет принята с благодарностью, так как это очень актуальная тема, и она мне интересна с научной точки зрения, хотя ей не обязательно концентрироваться на этом проекте.

Обновление: Я буду рассказом ГГГГ-ММ-ДД (этот формат не требуется)

Ответы [ 2 ]

2 голосов
/ 14 июля 2009

Насколько точным должно быть ваше хранилище? Это годы, дни или часы / минуты. Если вы просматриваете только дни или годы, то, возможно, вам не нужно фактически хранить дату, а скорее смещение +/- день / год от вашей даты 0

0 голосов
/ 28 февраля 2014

У меня была похожая проблема, и я хотел продолжить ретрансляцию полей даты в БД, чтобы позволить мне использовать поиск по диапазону дат с точностью до дня для исторических значений. (Моя БД содержит дату рождения и даты римских императоров ...)

Решением было добавить постоянный год (пример: 3000) ко всем датам перед их добавлением в БД и вычитанием того же числа перед отображением результатов запроса пользователям.

Если в вашей БД уже есть какое-то значение даты, не забудьте обновить выходное значение новым постоянным числом.

...