2015-12-01 6 views
0

Мои Col_1 выглядит this-Вычитание и изменение даты и времени в Teradata

1/20/2015 11: 12: 00,000000

1/21/2015 13: 00: 00.000000

... и прочее.

Я хочу сделать (строка 2 -row 1) и отобразить результат как 1572 минуты.

Кроме того, кто-то может сказать мне, как просто изменить формат этой ячейки для mm/dd/yy hh:mm:ss

и избавиться от всех знаков после запятой?

ответ

0

Это должно заставить вас думать в правильном направлении. ORDER BY функции окна может быть другим столбцом на вашей таблице, если вы не хотите, чтобы окно, упорядоченное фактическим столбцом, вы пытаетесь выполнить арифметику времени. Если вы можете поделиться более подробными сведениями о таблице или получить удар по SQL самостоятельно, мы сможем прийти к лучшему решению.

SELECT (MIN(Col_1) 
      OVER(PARTITION BY 1 ORDER BY Col_1 
      ROWS BETWEEN 1 FOLLOWING AND 1 FOLLOWING) - 
     Col_1) MINUTE(4) AS MinutesElapsed 
    FROM MyTable; 

Используя исходные данные вы дали в качестве образца:

SELECT (TIMESTAMP '2015-01-21 13:00:00.00000' - 
     TIMESTAMP '2015-01-20 11:12:00.00000') MINUTE(4) AS MinutesElapsed; 

Что касается знаков после запятой:

SELECT CAST(Col_1 AS TIMESTAMP(0)) AS NewTimeStamp; 
+0

Последний код не помогло. Это дало мне переполнение поля данных. – ASuit

+0

Не могли бы вы рассказать мне код, который избавится от десятичных знаков. Ваш код не помог. Дал мне переполнение поля данных. – ASuit

+0

Можете ли вы разместить данные SQL и образцы данных? –