Как бы я сохранил дату, которая может быть частичной (то есть только год, может быть, месяц тоже), и вывел бы ее позже с той же спецификой? - PullRequest
3 голосов
/ 18 сентября 2008

Я хочу позволить пользователям указывать дату, которая может включать или не включать день и месяц (но будет иметь по крайней мере год). Проблема в том, что она хранится как дата-время в БД; пропущенный день / месяц будут сохранены как значения по умолчанию, и я потеряю исходный формат и значение даты.

Моя идея состояла в том, чтобы сохранить реальный формат в столбце в виде строки в дополнение к столбцу datetime. Тогда я мог бы использовать строковый столбец всякий раз, когда мне нужно отобразить дату и дату и время для всего остального. Недостатком является дополнительный столбец для каждого столбца даты в таблице, которую я хочу отобразить, и печать локализованных дат будет не такой простой, поскольку я не могу полагаться на значение datetime ... Возможно, мне придется проанализировать строку .

Надеюсь, я что-то упустил, и, возможно, есть более простой способ.

(Обратите внимание, я использую Rails, если это важно для решения.)

Ответы [ 11 ]

0 голосов
/ 18 сентября 2008

Действительно ли нужно хранить его как дату? Если он не сохранен в виде строки 2008 или 2008-8 или 2008-8-1 - разбейте строку на дефисы, когда вы извлекаете ее, и вы можете установить, насколько конкретным был исходный ввод

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...