#sql #sql-server-2005
#sql #sql-server-2005
Вопрос:
Мне нужно сохранить в SQL Server 2005 «количество времени» для приложения, которое регистрирует ежемесячную сверхурочную работу. Например. кто-то мог бы отработать 36 часов и 30 минут сверхурочно за один месяц. Мне нужно сохранить это и выполнить вычисления на нем — какой был бы лучший метод.
Спасибо
Ответ №1:
Почему бы просто не сохранить количество минут в одном целочисленном столбце? Это идеальное представление для вычислений (например, итогов, упорядочения и т.д.), И вы можете легко разделить его на часы и минуты, когда вам нужно его отформатировать.
Комментарии:
1. Время (duration) идеально хранится как стандартный интервал типа данных SQL. Тип данных INTERVAL был определен в стандарте SQL 1992 года, но SQL Server его пока не поддерживает. На самом деле, среди основных платформ, я думаю, только PostgreSQL полностью поддерживает тип данных INTERVAL. Отсутствие поддержки базы данных означает, что мы регулярно находим людей, пытающихся вычислить выражения типа
2:00 3:00
, что здесь означает «2 часа плюс 3 часа» (ерунда), а не «2 часа плюс 3 часа» (5 часов).2. Спасибо — какая команда для разделения минут на часы и минутки?