Как указать 12-часовой формат времени в SQL Server 2008 - PullRequest
0 голосов
/ 23 ноября 2010

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

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 23 ноября 2010

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

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

Так что, если вы прочитали время в экземпляр класса CLR DateTime, вы можете отобразить как12-часовое время (без даты) со значением. ToString ("ч: мм: сс тт").Пользовательские параметры форматирования перечислены здесь .

1 голос
/ 23 ноября 2010

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

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

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

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

0 голосов
/ 23 ноября 2010

Должен ли он быть отформатирован из базы данных? C # и WPF предоставляют много встроенных опций формата даты. Например, проверьте свойство ContentStringFormat на ярлыке.

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

Форматирует дату в виде строки с использованием 12-часовых часов, а затем удаляет часть даты из нее

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)
...