CftClub.ru
Клуб специалистов ЦФТ-Банк

MS SQL

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Интеграция с внешними подсистемами
Предыдущая тема :: Следующая тема  
Автор Сообщение
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеЧт Ноя 07, 2013 16:00   MS SQL Ответить с цитатой
Полезность: Нет оценки
Сори, что не по теме, но спрошу, вдруг то знает.
У Oracla есть функция select NUMTODSINTERVAL(100, 'second') from dual
Нужно вьюху, которая использует такую конструкцию перенести на MS SQL.

Есть какие нибудь аналоги или как то эквивалентно переписать NUMTODSINTERVAL можно? Какие могут быть варианты?
Пните, плиз, в нужном направлении.
vtar
Эксперт


Вступление в Клуб: 20.03.2009
СообщениеЧт Ноя 07, 2013 16:38    Ответить с цитатой
Полезность: Нет оценки
не оно ?

http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:10729709873260
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеЧт Ноя 07, 2013 16:55    Ответить с цитатой
Полезность: Нет оценки
Нет, насколько мне позволяет английский, тут речь об использовании в ORACLE. А именно предлагают использовать эту функцию.
Но мне надо наоборот от неё уйти.
Сейчас вьюха на Оракле выглядит вот так:

SELECT
ch."calldate" + NUMTODSINTERVAL(ch."NUMBER", 'second')
FROM "TABLE" ch;

NUMBER - там валяются целые числа.

Мне надо как то переписать под MS SQL с которым я встретился первый раз и который не знает функцию NUMTODSINTERVAL
devor
Профи


Вступление в Клуб: 13.02.2012
СообщениеПт Ноя 08, 2013 08:35   Re: MS SQL Ответить с цитатой
Полезность: Нет оценки
yaffil пишет:
Сори, что не по теме, но спрошу, вдруг то знает.
У Oracla есть функция select NUMTODSINTERVAL(100, 'second') from dual
Нужно вьюху, которая использует такую конструкцию перенести на MS SQL.

Есть какие нибудь аналоги или как то эквивалентно переписать NUMTODSINTERVAL можно? Какие могут быть варианты?
Пните, плиз, в нужном направлении.


В MS SQL нет типа INTERVAL, поэтому такая функция там не имеет смысла. "В лоб" переписать не получится. Какая конечная задача этого селекта?
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПт Ноя 08, 2013 08:46   Re: MS SQL Ответить с цитатой
Полезность: Нет оценки
devor пишет:

В MS SQL нет типа INTERVAL, поэтому такая функция там не имеет смысла. "В лоб" переписать не получится. Какая конечная задача этого селекта?


Там не только в одном селекте она используется, там ещё и в инсертах и делейтах она. Я так понимаю таким извращённым способом они определяют время последней выгрузки.

вот пример делейта:

DELETE
FROM "TABLE"
WHERE ("calldate" + NUMTODSINTERVAL("NUMBER", 'second')) < (SYSDATE - NUMTODSINTERVAL(:DAYS, 'day'))
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПт Ноя 08, 2013 10:24    Ответить с цитатой
Полезность: Нет оценки
Чуть моск не сломал, но вроде как нарыл аналог для MS SQL:

select SYSDATETIME() , DATEADD (ss , 100 , SYSDATETIME())
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Интеграция с внешними подсистемами Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru