Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Тип данных для хранения диапазона времени  [new]
SashaMercury
Member

Откуда: Москва
Сообщений: 2653
Здравствуйте.
Мне необходимо хранить в таблице диапазон время начала-время конца(мероприятия). Этот диапазон будет умещаться в одни сутки. Длительность 30 минут-3 часа. Как на ваш взгляд лучше хранить эти данные и почему ? В дальнейшем мне нужно будет сортировать записи в зависимости от диапазонов. (по очерёдности, например 9 00-10 00 будет раньше 14 00-150 0)
17 фев 14, 08:23    [15575251]     Ответить | Цитировать Сообщить модератору
 Re: Тип данных для хранения диапазона времени  [new]
aleks2
Guest
Нипарится и хранить правильно
[Начало] datetime
[Конец] datetime
17 фев 14, 08:25    [15575254]     Ответить | Цитировать Сообщить модератору
 Re: Тип данных для хранения диапазона времени  [new]
SERG1257
Member

Откуда:
Сообщений: 2880
плюс add constraint mycheck check [Начало]<=[Конец]
17 фев 14, 10:08    [15575531]     Ответить | Цитировать Сообщить модератору
 Re: Тип данных для хранения диапазона времени  [new]
SashaMercury
Member

Откуда: Москва
Сообщений: 2653
Нет, ребята. Не то. Зачем мне хранить весь datetime. Я с вами не согласен
17 фев 14, 12:59    [15576673]     Ответить | Цитировать Сообщить модератору
 Re: Тип данных для хранения диапазона времени  [new]
Glory
Member

Откуда:
Сообщений: 104751
SashaMercury
. Я с вами не согласен

Зачем тогда тему открыли ?
_Хранить_ можно в каком угодно типе, хоть в бинарном
17 фев 14, 13:00    [15576680]     Ответить | Цитировать Сообщить модератору
 Re: Тип данных для хранения диапазона времени  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
SashaMercury
Нет, ребята. Не то. Зачем мне хранить весь datetime. Я с вами не согласен

тогда добро пожаловать в занимательную партию... класса,а как сделать отчет,посчитать чего нить в разрезе месяц\год и етц...
17 фев 14, 13:00    [15576681]     Ответить | Цитировать Сообщить модератору
 Re: Тип данных для хранения диапазона времени  [new]
invm
Member

Откуда: Москва
Сообщений: 9844
SashaMercury
Зачем мне хранить весь datetime
Есть тип time.
17 фев 14, 13:03    [15576704]     Ответить | Цитировать Сообщить модератору
 Re: Тип данных для хранения диапазона времени  [new]
SashaMercury
Member

Откуда: Москва
Сообщений: 2653
Maxx, спасибо
первый качественный и грамотный комментарий. Уже думал не услышу.
17 фев 14, 13:13    [15576775]     Ответить | Цитировать Сообщить модератору
 Re: Тип данных для хранения диапазона времени  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
SashaMercury
сортировать записи в зависимости от диапазонов. (по очерёдности, например 9 00-10 00 будет раньше 14 00-150 0)

ага и сколько таких промежутков у вас будет за неделю например,как вы их разрулите ? Если только время хранить будете ? Просто интрестно аж
17 фев 14, 13:15    [15576784]     Ответить | Цитировать Сообщить модератору
 Re: Тип данных для хранения диапазона времени  [new]
SashaMercury
Member

Откуда: Москва
Сообщений: 2653
Существует отдельное поле для даты
17 фев 14, 13:21    [15576826]     Ответить | Цитировать Сообщить модератору
 Re: Тип данных для хранения диапазона времени  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
SashaMercury
Существует отдельное поле для даты

правильно..давайте хранить по 3 поля в таблице для одного и того же... вариант палюбасу
а патом условие where будет содержать на пару лишних фильтров + лишнии индексы на таблице.. ну да ,очень оригинальный подход,чего уж там
17 фев 14, 13:24    [15576839]     Ответить | Цитировать Сообщить модератору
 Re: Тип данных для хранения диапазона времени  [new]
SashaMercury
Member

Откуда: Москва
Сообщений: 2653
ахаха, нееет) вы правы, в целом. Но логика системы принуждает хранить это поле отдельно. Честно.
17 фев 14, 13:26    [15576860]     Ответить | Цитировать Сообщить модератору
 Re: Тип данных для хранения диапазона времени  [new]
Glory
Member

Откуда:
Сообщений: 104751
SashaMercury
Но логика системы принуждает хранить это поле отдельно

Мда. Хранение и визуализацию логика вашей системы различает ?
17 фев 14, 13:28    [15576870]     Ответить | Цитировать Сообщить модератору
 Re: Тип данных для хранения диапазона времени  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
SashaMercury
ахаха, нееет) вы правы, в целом. Но логика системы принуждает хранить это поле отдельно. Честно.

тогда совершенно непонятен ваш впорос - если вы и так все решили ,смысл ?
17 фев 14, 13:28    [15576876]     Ответить | Цитировать Сообщить модератору
 Re: Тип данных для хранения диапазона времени  [new]
SashaMercury
Member

Откуда: Москва
Сообщений: 2653
Не знаю в каком формате лучше хранить исходя из того что быстрее будет обрабатываться, с чем удобней работать будет, что будет более правильно. Возможно действительно dt дважды, но я могу и varchar везде сделать, и что угодно, и i можно. Я же писал - обоснуйте пожалуйста почему тот или иной вариант лучше
17 фев 14, 13:32    [15576895]     Ответить | Цитировать Сообщить модератору
 Re: Тип данных для хранения диапазона времени  [new]
Glory
Member

Откуда:
Сообщений: 104751
SashaMercury
Не знаю в каком формате лучше хранить исходя из того что быстрее будет обрабатываться

Дату и время лучше всего хранить в datetime.
Потому что это специальный тип данных именно для даты/времени.
Поэтому он лучше всех других типов.
17 фев 14, 13:34    [15576913]     Ответить | Цитировать Сообщить модератору
 Re: Тип данных для хранения диапазона времени  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
потому что есть СПЕЦИАЛЬНЫЕ типы данных..для работы и хранения тех или инных величин со своими ф-циями для работы именно с етими величинами. Выж не храните decimal (9,9) в виде строки ? Почему тогда время надо хранить каким -то череж жопным методом ?
17 фев 14, 13:35    [15576919]     Ответить | Цитировать Сообщить модератору
 Re: Тип данных для хранения диапазона времени  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Бывают же ситуации, когда надо проверять интервалы времени, начинающиеся в 9 вечера каждый день,
и заканчивающиеся в 6 утра на следующий день?
Как поможет тип TIME? А DATETIME?
А если между начальной и конечной границей каждого интервала ещё и несколько суток лежит?
17 фев 14, 13:42    [15576967]     Ответить | Цитировать Сообщить модератору
 Re: Тип данных для хранения диапазона времени  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Лучше уж хранить время начала каждого интервала (TIME)
и продолжительность, например, в секундах (INT,BIGINT)
17 фев 14, 13:44    [15576981]     Ответить | Цитировать Сообщить модератору
 Re: Тип данных для хранения диапазона времени  [new]
Addx
Member

Откуда:
Сообщений: 957
В большинстве случаев лучше придерживаться универсальных решений.
datetime и для начала, и для окончания мероприятия,
или datime для начала, и int(bigint) - для продолжительности будет правильней всего.
Дата - это вторичное понятие.
17 фев 14, 15:21    [15577763]     Ответить | Цитировать Сообщить модератору
 Re: Тип данных для хранения диапазона времени  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Интервалы есть в спецификации SQL

Вот в Postgresql interval

По мне так не хватает ни специфических индексов ни алгоритмов в планах, ибо задач с ними встречаются не редко.
15425779 (12610105)
17 фев 14, 20:02    [15579379]     Ответить | Цитировать Сообщить модератору
 Re: Тип данных для хранения диапазона времени  [new]
Добрый Э - Эх
Guest
Mnior,

это немного не те интервалы, что нужны ТС.
твои интервалы - это продолжительности периодов времени. А ТС хочет в разрез с нормальными формами хранения двух значений (начало-кончало) в одном поле...
18 фев 14, 06:40    [15580175]     Ответить | Цитировать Сообщить модератору
 Re: Тип данных для хранения диапазона времени  [new]
aleks02
Guest
SashaMercury
Не знаю в каком формате лучше хранить исходя из того что быстрее будет обрабатываться, с чем удобней работать будет, что будет более правильно.
...
но я могу и varchar везде сделать, и что угодно...
Как людям вообще приходит в голову хранить дату как строку и как "что угодно"?
Откройте школьный учебник по информатике что ли, узнайте наконец зачем нужны типы данных.
18 фев 14, 07:47    [15580222]     Ответить | Цитировать Сообщить модератору
 Re: Тип данных для хранения диапазона времени  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Добрый Э - Эх
это немного не те интервалы, что нужны ТС
В постгре да, и спецификации кажись - не помню, но по остальным сцылкам как раз про это.
Только вот хранить структурные типы данных в реляционных системах как чёрный/цельный ящик - это спорно.
Лучше указать как отдельные элементы и какие между ними связи, а разводить ООП в RDBS моветон.

From+To или From+Interval - эквивалентные вещи как по хранению так и по функциональности.
Одно из другого вытекает элементарнейшим способом, детерминистическим.
18 фев 14, 12:32    [15581614]     Ответить | Цитировать Сообщить модератору
 Re: Тип данных для хранения диапазона времени  [new]
SashaMercury
Member

Откуда: Москва
Сообщений: 2653
Добрый Д№1

Mnior,

это немного не те интервалы, что нужны ТС.
твои интервалы - это продолжительности периодов времени. А ТС хочет в разрез с нормальными формами хранения двух значений (начало-кончало) в одном поле...


бред.

alex02 Д№2
Как людям вообще приходит в голову хранить дату как строку и как "что угодно"?
Откройте школьный учебник по информатике что ли, узнайте наконец зачем нужны типы данных.


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


iap, Ваш комментарий лучший тут. Спасибо.


Администрация, вроде-бы форум неплохой, но странно что sql раздел с запашком
25 фев 14, 06:56    [15623434]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить