Какой тип данных sql я должен использовать для хранения времени выполнения в миллисекундах? - PullRequest
1 голос
/ 14 марта 2011

Мне нужно хранить время выполнения (в миллисекундах) функции в поле sql.Какой тип данных мне следует использовать?

Ответы [ 3 ]

3 голосов
/ 14 марта 2011

Я думаю, int будет лучшим вариантом для вас.

2 голосов
/ 14 марта 2011

Я бы использовал стандартное 32-разрядное целое число (или что-то похожее в вашей RDBMS).Если ваша СУБД имеет определенный тип для временных интервалов, используйте его, но все известные мне СУБД имеют только типы данных, подобные временным меткам.

Добавлено: 32-разрядного целого числа достаточно для чуть более 49 дней .Если вам нужно больше времени, вам придется использовать больший тип данных, но тогда я сомневаюсь, что вам понадобится точность в миллисекунду.Со второй точностью это хорошо примерно на 136 лет .Если вам нужно больше, у вас есть большие проблемы.

0 голосов
/ 14 марта 2011

Вы можете сохранить прошедшее время в 2 столбцах (32-разрядный int для секунд и 16-разрядный smallint для миллисекунд).Это будет охватывать диапазон около 68 лет и занимать 6 байтов в строке.

В качестве альтернативы удобно хранить прошедшее время в типе данных money в виде секунд.Он хранит 4 десятичных знака точности и имеет диапазон c.От -2 ^ 3 до + 2 ^ 63 - 1, или, точнее, от -922,337,203,685,477.5808) до +922,337,203,685,477.5807.При учете отрицательных значений +922,337,203,685,477,5807 секунд приходится около 29 миллионов лет.Использование money займет 8 байтов в строке.

Или тип данных decimal(p,q).Выберите общую точность p и количество десятичных знаков q.Требуемое хранилище составляет 5, 9, 13 или 17 байт в зависимости от значения p.

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