Формат даты SQL Server Индия в США - PullRequest
1 голос
/ 27 июля 2011

У меня есть служба, которая отправляет дату из моей базы данных SQL-сервера в веб-базу данных, и формат отправляемой даты - "yyyyMMdd".

Моя база данных находится в Индии, поэтому формат даты и текущая дата основаны на индийской культуре и локали.

И мой веб-сервер находился в США, поэтому формат даты основан на США.

В индийском и американском времени разница почти в 13 часов. Поэтому, когда мой клиент ввел партию, скажем, 13 июня 2011 года в 9:00 утра, он отображается на веб-сайте, полученном 12 июня.

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

Спасибо

Ответы [ 2 ]

1 голос
/ 27 июля 2011

Это будет принимать пользовательский ввод и преобразовывать его в UTC:

DECLARE @input DateTime = '13 June 2011 9:00 am';
DECLARE @utc DateTime = DATEADD(s, DATEDIFF(s, GETDATE(), GETUTCDATE()), @input);

SELECT @input UserInput, @utc UTC;

Вы можете сохранить все значения DateTime в вашей базе данных как UTC, а затем представить их пользователю в любом часовом поясе / культуре.необходимо.

0 голосов
/ 27 июля 2011

Сделка действительно произошла 12 июня в США, так что это действительно правильно.

Если вы хотите, чтобы эта дата отображалась 12 июня при просмотре в США, и 13 июня при просмотре в Индии, вам необходимо сохранить даты в формате UTC.

...