Как предотвратить перевод часового пояса на SqlConnection? - PullRequest
1 голос
/ 05 ноября 2008

У меня есть база данных, которая полностью работает по Гринвичу. Однако клиентские машины могут работать в разных часовых поясах (включая BST). Когда вы извлекаете данные обратно с помощью SqlConnection, он переводит значение datetime, например,

19 августа 2008 г.

становится

18 августа 2008 г. 23: 00.

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

Ответы [ 2 ]

3 голосов
/ 05 ноября 2008

Как вы получаете доступ к данным?

У меня была такая же проблема при передаче DataSets / DataTables из веб-службы.

Я обошел его, установив свойство DataColumn.DateTimeMode в DataTable

returnedDataTable.Columns("ColumnName").DateTimeMode = DataSetDateTime.Unspecified

После этого все было хорошо.

Не знаю, поможет ли это.

1 голос
/ 05 ноября 2008

Хранить только значения UTC в базе данных. При сохранении / извлечении из базы данных ваши бизнес-объекты всегда переводят в / из UTC / местного времени, чтобы пользователи могли просматривать и вводить значения местного времени. Вы можете сделать это, реализовав перевод в методах getter / setter BO, чтобы частная переменная была в UTC, и, таким образом, когда она сохраняется в базе данных, она уже находится в нужной вам форме.

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