Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Чт Ноя 07, 2013 16:00  MS SQL |
|
Полезность: Нет оценки
|
Сори, что не по теме, но спрошу, вдруг то знает.
У Oracla есть функция select NUMTODSINTERVAL(100, 'second') from dual
Нужно вьюху, которая использует такую конструкцию перенести на MS SQL.
Есть какие нибудь аналоги или как то эквивалентно переписать NUMTODSINTERVAL можно? Какие могут быть варианты?
Пните, плиз, в нужном направлении. |
|
![](templates/subSilver/images/spacer.gif) |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
|
![](templates/subSilver/images/spacer.gif) |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Чт Ноя 07, 2013 16:55   |
|
Полезность: Нет оценки
|
Нет, насколько мне позволяет английский, тут речь об использовании в ORACLE. А именно предлагают использовать эту функцию.
Но мне надо наоборот от неё уйти.
Сейчас вьюха на Оракле выглядит вот так:
SELECT
ch."calldate" + NUMTODSINTERVAL(ch."NUMBER", 'second')
FROM "TABLE" ch;
NUMBER - там валяются целые числа.
Мне надо как то переписать под MS SQL с которым я встретился первый раз и который не знает функцию NUMTODSINTERVAL |
|
![](templates/subSilver/images/spacer.gif) |
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, поэтому такая функция там не имеет смысла. "В лоб" переписать не получится. Какая конечная задача этого селекта? |
|
![](templates/subSilver/images/spacer.gif) |
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')) |
|
![](templates/subSilver/images/spacer.gif) |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Пт Ноя 08, 2013 10:24   |
|
Полезность: Нет оценки
|
Чуть моск не сломал, но вроде как нарыл аналог для MS SQL:
select SYSDATETIME() , DATEADD (ss , 100 , SYSDATETIME()) |
|
![](templates/subSilver/images/spacer.gif) |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|