Тип данных SQL Server datetime не поддерживает много форматов - PullRequest
3 голосов
/ 21 мая 2009

У меня есть таблица в SQL Server 2005, которая имеет поле даты и времени. Я хочу сохранить значение времени даты в формате mm/dd/yyyy hh:mm:ss, но, полагаю, SQL Server допускает дату и время в формате yyyy-mm-dd HH:mm:ss.ll.

Я могу сохранить значение даты и времени в формате mm/dd/yyyy hh:mm:ss как varchar, но это противоречит моему намерению отсортировать таблицу по этому полю даты и времени.

Чего-то не хватает в моем подходе? Есть предложения?

ура

Ответы [ 4 ]

7 голосов
/ 21 мая 2009

Тип datetime не сохраняет его в yyyy-mm-dd HH:mm:ss.ll, как вы утверждаете.

Столбцы Datetime хранятся в виде 8-байтовых двоичных данных. Формат yyyy-mm-dd HH:mm:ss.ll - это то, как он возвращается в вашем запросе. Чтобы отобразить его в других форматах, посмотрите на функцию CONVERT .

2 голосов
/ 21 мая 2009

Стиль даты и времени можно выбрать, когда вы его выберете следующим образом:

convert(varchar, [datefield], style) 

Что позволяет форматировать дату, когда вы ее получите. Это делает формат при хранении тривиальным.

Вот список всех стилей, которые вы можете использовать.

0 голосов
/ 21 мая 2009

Я должен признать, что никогда не пытался заставить базу данных сохранять какой-либо конкретный формат даты / времени. Я полагаю, что в этом нет необходимости.

Итак, у вас есть поле даты / времени, и вы можете сортировать данные по нему? Это примерно столько, сколько вам нужно от СУБД. Выполните окончательное форматирование на уровне представления вашего приложения.

0 голосов
/ 21 мая 2009

Дата на самом деле не сохраняется в определенном формате; отображается в формате по умолчанию или в выбранном вами формате.

Где вы «видите» дату? Возможно, ваше приложение не будет отображать дату так же, как SQL Server Management Studio.

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

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