SQL, вычитающий даты / время в одно значение

#sql #db2

#sql #db2

Вопрос:

У меня есть несколько столбцов:

 |  Start             |   END              |  Duration
2008-06-28 18.03.55 | 2008-10-06 01.33.55 |  End - Start
  

Мой код выглядит следующим образом:

 SELECT theDelivery,
(char(theDelivery) || ' ' || char(current time)) AS Begin,
(char(theDelivery   100 DAYS) || ' ' || char(current time   7 HOURS   30 MINUTES)) AS End
  

Вот что я думал о выполнении вычитания… Но это неправильно. Я знаю, что вы не можете вычесть псевдоним’ Есть мысли?
((символ (текущее время 7 ЧАСОВ 30 МИНУТ) -(символ (срок доставки 100 ДНЕЙ)))


Итак, я понял, что у меня что-то не так с символом. Я придумал это, и это было именно то, что я искал:

 SELECT theDelivery,
TIMESTAMP(theDelivery, current time) AS Begin
,
TIMESTAMP((theDelivery   100 DAYS), (current time   7 HOURS   30 MINUTES)) AS End,
TIMESTAMP((theDelivery   100 DAYS), (current time   7 HOURS   30 MINUTES)) - TIMESTAMP(theDelivery, current time) AS MyDur
  

Ответ №1:

Если вы сделаете:

((символ (текущее время 7 ЧАСОВ 30 МИНУТ) -(символ (срок доставки 100 ДНЕЙ)))

Выполняется вычитание символов. Вы можете попробовать:

 date( 
  to_date(
      char(current time   7 HOURS   30 MINUTES),
      'YYYY-MM-DD HH.MI.SS'
  ) 
) -
date(
   to_date(
      char(theDelivery   100 DAYS),
      'YYYY-MM-DD HH.MI.SS'
   )
)
  

Или в строке sigle:

 date( to_date( char(current time   7 HOURS   30 MINUTES),'YYYY-MM-DD HH.MI.SS' ) ) - date( to_date(char(theDelivery   100 DAYS),'YYYY-MM-DD HH.MI.SS') )
  

Комментарии:

1. Пожалуйста, обратите внимание, что результат будет неточным и не будет выражен в точном количестве чего-либо.

2. Проверьте правку, которую я сделал под моим первоначальным вопросом!