SQL-запрос из Oracle SQL в T-SQL - PullRequest
0 голосов
/ 28 марта 2019

У меня есть подзапрос, который используется для базы данных Oracle, но я хочу использовать эквивалентный запрос для базы данных SQL Server.

Я не выяснил, как перенести часть TO_TIMESTAMP(TO_CHAR(TO_DATE итакже не знал, как справиться с этим с помощью rownums в T-SQL.

Возможно ли даже перенести этот запрос?

SELECT 0 run_id,
      0 tran_id,
      0 sort_id,
      ' ' tran_type,
          10 prod_id,
          72 type_id,
          1 value,
          TO_TIMESTAMP(TO_CHAR(TO_DATE('2016-03-18 00:00:00', 'YYYY.MM.DD HH24:MI:SS') + rownum -1, 'YYYY.MM.DD') || to_char(sw.end_time, 'HH24:MI:SS'), 'YYYY.MM.DD HH24:MI:SS') event_publication,
          EXTRACT (YEAR
                   FROM (TO_DATE('2016-03-18 00:00:00', 'YYYY.MM.DD HH24:MI:SS') + rownum -1)) y,
                  EXTRACT (MONTH
                           FROM (TO_DATE('2016-03-18 00:00:00', 'YYYY.MM.DD HH24:MI:SS') + rownum -1)) mo,
                          EXTRACT (DAY
                                   FROM (TO_DATE('2016-03-18 00:00:00', 'YYYY.MM.DD HH24:MI:SS') + rownum -1)) d,
                                  to_number(to_char (sw.end_time, 'HH24')) h,
                                  to_number(to_char (sw.end_time, 'MI')) mi,
                                  to_number(to_char (sw.end_time, 'SS')) s,
                                  0 ms
FROM all_objects ao,
    settlement_win sw,
    prod_def pd
WHERE pd.prod_id = 10
 AND sw.country = pd.country
 AND sw.commodity = pd.commodity
 AND rownum <= TO_DATE('2016-03-18 23:59:00', 'YYYY.MM.DD HH24:MI:SS') -TO_DATE('2016-03-18 00:00:00', 'YYYY.MM.DD HH24:MI:SS')+1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...