Межплатформенная функция или запрос разницы в датах SQL - PullRequest
1 голос
/ 01 июля 2010

У меня есть таблица со столбцом даты и времени, и мне нужно получить записи с датой за предыдущий час, день, неделю, месяц и т. Д.

Одним из ограничений является то, что мне нужно поддерживать Oracle, MySQL, DB2 и SQL SERVER. Могу ли я достичь этого только одним SQL-запросом?

Ответы [ 4 ]

2 голосов
/ 01 июля 2010

Поскольку все они могут по-разному обращаться с датами, я думаю, вы не сможете.Возможно, вам удастся выделить компоненты, специфичные для платформы, и поменять их местами при изменении платформы.

Если вы расскажете нам больше об этой проблеме, мы могли бы предложить что-то более подробное.

1 голос
/ 03 июля 2010

Пользовательские функции.Напишите свой собственный DATEDIFF -эквивалент для каждой РСУБД и обобщите различия.

0 голосов
/ 01 июля 2010

Это хорошая причина для запуска многоуровневого подхода к получению данных на основе СУБД

0 голосов
/ 01 июля 2010

Функция ANSI SQL будет datediff().Но я сомневаюсь, что все (особенно старые) диалекты SQL поддерживают это.

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