Тип данных времени в SQL Server 2005 - PullRequest
2 голосов
/ 22 марта 2010

Я создал небольшую базу данных под SQL Server 2008.Теперь я хотел переместить его на SQL Server 2005, и он не работает, поскольку у него нет типа данных Time.Какой вариант я должен хранить только время в SQL Server 2005. Я написал небольшое приложение TimeSheet, которое должно писать часы и минуты в основном в формате, например, 05:30:00 (чч: мм: сс), но сс не является обязательным.

Ответы [ 3 ]

4 голосов
/ 22 марта 2010

SQL Server 2005 поддерживает тип данных DATETIME, который также включает время. Чтобы сохранить только время, вы можете использовать оператор CONVERT:

SELECT CONVERT(DATETIME, '11:22:33')

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

2 голосов
/ 22 марта 2010
  • Отсутствует. Из коробки.
  • Сделайте это самостоятельно, используя пользовательский тип на основе CLR.
  • Жить с этим.

Для расписания я лично предпочел бы НЕ иметь поле времени, а хранить время как DateTime всегда - это облегчает запросы.

1 голос
/ 22 марта 2010

К сожалению, в SQL Server 2005 тип данных Time отсутствует. Что бы я предложил сделать для преобразования существующих данных в экземпляр SQL Server 2005, используйте что-то вроде этого:

Select CONVERT(DateTime, YourDateTimeColumn, 114) AS [HH:MI:SS:MMM(24H)]
  From YourTable

Это даст вам текущую дату со временем из существующих данных. При извлечении данных вам нужно будет как-то просто урезать дату. Это можно сделать с помощью функции Format в C # (или на любом другом языке .NET, который вы используете ... если вы это делаете)

Надеюсь, это поможет.

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