Конвертируйте даты GMT в BST на лету в SQL Server 2000 - PullRequest
1 голос
/ 12 ноября 2010

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

20/03/2010 00:00    12  
20/03/2010 00:30    14  

и т.д.

Все эти данные хранятся в GMT

Мне нужно сделать выбор в этой таблице для данных в BST / время часов

например

select *  
from tbl  
where dt between '01 April 2010' and '30 April 2010 23:30'  

когда в BST в качестве вышеуказанного диапазона дат необходимо преобразовать даты

Мне также нужен способ учета часа перехода и конца марта и октября

К сожалению, я не могу обновить сервер SQL

Есть ли способ сделать это в SQL для SQL Server 2000?

что-то вроде функции, которую я мог бы сделать?

select *  
from tbl  
where fnConvertToClockTime(dt) between '01 April 2010' and '30 April 2010 23:30'  

Когда в GMT функция возвращает точную дату из таблицы

Приветствия

Rupert

1 Ответ

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

У меня та же проблема, и я изучаю использование таблиц Календаря для таких посетителей. Сохраняйте все даты в формате UTC, а затем при необходимости конвертируйте. Возможно, я собираюсь создать VIEWS для разных часовых поясов, чтобы избежать передачи параметров, но я думаю, что хранимая процедура также подойдет.

Я нашел здесь полезную информацию: How-do-i-Converting-Local-Time-to-UTC-GMT-Time

И соответствующая статья о таблицах Календаря здесь: Почему я должен рассмотреть вопрос об использовании вспомогательной таблицы-календаря

...