Вопрос

Я использую SQL Server 2008, и у меня есть файл базы данных (MyData.mdf), в котором у меня есть столбец в одной из таблиц, и этот столбец имеет DataType (время).

Я добавил этот файл базы данных на мой проект WPF-C # (с использованием VS2010), но у меня была проблема и ее следующим образом:

Это (время) столбец рассматривает время в 24-часовой системе, но я хочу использовать (12-часовую) систему в моем приложении, поэтому есть ли способ определить 12-часовое системное время в SQL Server2008.

И если нет, что вы думаете, это лучший способ справиться с этим ???

Pleeeeeeeeeeeeease помогу мне как можно скорее, потому что я спешу, и я не могу понять это ...

Это было полезно?

Решение

Время в базе данных не «отформатировано». Он представлен в некотором внутреннем формате (который вы можете Google, но не должен заботиться о том, что позволяет ему представлять каждый момент в день, к поддерживаемому уровню точности.

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

Поэтому, если вы прочитали время в экземпляре класса CLR DateTime, вы можете отображать в виде 12-часового времени (пропуская дату) со значением.тостром («H: MM: SS TT»). Пользовательские параметры форматирования перечислены здесь.

Другие советы

Ответ - это ты не можешь на самом деле, но не волнуйтесь, это не проблема. Формируйте дату в вашем C # код.

Дело в том, что дата и время - это абсолютное значение, которое вы хотите сохранить SQL для хранения, то 12 часов VS 24-часовые часы - просто деталь дисплея, например, 13:00 и 13:00 PM эквивалентны, не Беспокойство о том, как SQL сохраняет его, то в C # используйте следующее, чтобы отобразить его:

DateTime myDateTime = GetTheTimeFromSomeMethod();
myDateTime.ToString("h:mm:ss tt");

Есть много гидов, Это хороший, но есть много других, например, Вот этот

Это должно быть отформатировано из базы данных? C # и WPF обеспечивают множество встроенных вариантов формата даты. Например, проверьте ContentStringFormat Собственность на этикетке.

Если вы должны сделать это в базе данных, вот грязный обходной путь, который будет работать

Он форматирует дату строки с использованием часов 12H, а затем удаляет дату частью этого

select right(convert(varchar, cast('1/1/2010 23:59:59' as datetime), 100), 
charindex(' ', reverse(convert(varchar, cast('1/1/2010 23:59:59' as datetime), 100)))-1)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top