2010-09-02 4 views
1

DB находится в SQL Server 2008 ...Как изменить временную зону DateCreated Column?

У меня есть db, который находится в другой стране, я хочу, чтобы таблицы DateCreated и DateUpdated имели дату и время, например. Канаде/ВКЛ/Торонто, а не в часовом поясе США, где находится дБ.

DateCreated имеет значение по умолчанию GetDate а() и DateUpdated имеет следующий триггер:

CREATE TRIGGER trigger_name ON table_name 
AFTER UPDATE 
AS 
BEGIN 
    UPDATE table_name 
    SET dateModified = GETDATE() 
    FROM table_name cm JOIN Inserted i 
    ON cm.companyid = i.companyid; 
END 
GO 
+0

Не хотите ли вы обновлять время до UTC, чтобы не беспокоиться о часовых поясах? – LittleBobbyTables

ответ

1

Для того, чтобы преобразовать datetime из одного часового пояса в другой, либо добавить (часовой пояс назначения к востоку от текущей временной зоны) или вычесть (на запад) количество разностей часов между двумя зонами. Например, если база данных находится в Калифорнии (Тихоокеанское время), добавьте три часа, чтобы получить время Торонто (Восточное время). Нет необходимости приспосабливаться к летнему времени, так как оба часовых пояса наблюдают за ним.

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