Тип данных SQL для хранения 01 и 10 - PullRequest
0 голосов
/ 02 февраля 2011

У меня есть элемент select, который имеет некоторые значения от 0 до 12, код для элемента select,

           <select name="months">
                <option>--Month--</option>
                <option value="0">0</option>
                <option value="1" >1</option>
                <option value="2" >2</option>
                <option value="3" >3</option>
                <option value="4" >4</option>
                <option value="5" >5</option>
                <option value="6" >6</option>
                <option value="7" >7</option>
                <option value="8" >8</option>
                <option value="9" >9</option>
                <option value="10" >10</option>
                <option value="11" >11</option>
                <option value="12" >12</option>
            </select>

Я использую MySQL в качестве базы данных и PHP для скриптов Backend, я установил тип данных какfloat (в базе данных) для хранения этих значений, так как в этом году в значении года добавляются эти данные, как 1.10.проблема в том, что когда я выбираю 2 как год и 1 как месяц, он обновляется как 2.10, а если я выбираю 2 как год и 10 как месяц, он обновляется так же, как указано выше, 2.10.Как я могу решить эту проблему??ПРИМЕЧАНИЕ: с помощью varchar это возможно.

Ответы [ 4 ]

3 голосов
/ 02 февраля 2011

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

1 голос
/ 02 февраля 2011

Почему вы не можете использовать DateTime для его хранения, а затем извлекать отдельные компоненты по мере необходимости?

У меня была та же проблема, и поверьте мне, использование правильного типа данных - лучший способ.Вы создаете новый объект DateTime, а затем изменяете месяц и день по мере необходимости, сохраняете в базе данных, а затем при необходимости извлекаете эту информацию и используете DateTime.Month и т. Д.

0 голосов
/ 02 февраля 2011

Существует ли какое-то бизнес-правило, которое говорит, что вы должны хранить его в формате, отличном от DateTime?

Это единственная причина, по которой я могу не использовать DateTime, и эта информация даст лучшие параметры для ответа на исходный вопрос.

0 голосов
/ 02 февраля 2011

Вы должны использовать один из DateTime типов данных MySql - использование чего-либо еще означает, что вычисления и запросы к датам будут более сложными, чем это должно быть, и будут иметь больше накладных расходов на обработку.

Используйте правильный тип данных для задачи.

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