SQL Server, странное поведение DATETIME - PullRequest
0 голосов
/ 16 мая 2011

У меня SQL Server Express 2008 в моей локальной системе, и я делаю некоторые вставки в столбец datetime.

Проблема заключается в том, что та же самая система на производстве (SQL Server 2005), размещенная на godaddy, записывает запись datetime в качестве предыдущей даты и времени 13: 00

например. Дата вставки 07/01/2010 00:00:00

Запись в локальной базе данных = 07/01/2010 00:00:00
Вступление в Prod DB = 06/30/2010 13:00:00

Может ли быть какая-то настройка уровня сервера / базы данных для datetime хранилища?

Редактировать 1:

Пожалуйста, обратите внимание, я вставляю предопределенное значение datetime, дата вставки точно равна 07/01/2010 00:00:00. Я не использую GETDATE ().

Редактировать 2: Решение

Хорошо, спасибо за ответы, ребята, но проблема была не в SQL Server, а в данных, считываемых из XML-формы сериализованного набора данных. Информация о дате и времени отправлялась как «мм / дд / гггг T00: 00: 00 + 4: 00»

Все, что я сделал, это удалил с него отрезок времени и вставил его в БД.

Ура!

Ответы [ 2 ]

1 голос
/ 16 мая 2011
  • Вы находитесь в Дубае = GMT + y часов
  • Годадди в США = GMT-x часов

GETDATE () дает время сервера SQL

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

0 голосов
/ 16 мая 2011

Разница во времени заставляет меня задуматься, это UTC. Вы запускаете это через SSMS или через код приложения?

Всегда ли он вставляет 11 часов позади вашего местного?

Это явное время, которое вы даете столбцу, или это столбец по умолчанию (возможно, GETUTCDATE ())?

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