teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2021/10/07 04:05

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -27,4 +27,23 @@
27
27
  from hoge
28
28
  group by id
29
29
  ) t
30
+ ```
31
+ 以下検証用
32
+ ```SQL
33
+ select id
34
+ , extract(hour from diff_time) * 3600
35
+ + extract(minute from diff_time) * 60
36
+ + extract(second from diff_time) as diff_second
37
+ from (
38
+ select id
39
+ , max(to_timestamp(start_time, 'HH24MISS'))
40
+ - min(to_timestamp(start_time, 'HH24MISS')) as diff_time
41
+ from (
42
+ select '1' as id , '101503' as start_time from dual
43
+ union all select '1' , '111604' from dual
44
+ union all select '2' , '111504' from dual
45
+ union all select '2' , '122604' from dual
46
+ ) hoge
47
+ group by id
48
+ ) t
30
49
  ```

1

追記

2021/10/07 04:05

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -11,4 +11,20 @@
11
11
  from hoge
12
12
  group by id
13
13
  ) t
14
+ ```
15
+ 質問に追記された内容では上記ではエラーになったとの事ですね。
16
+ 上記は`start`を文字型と想定しています。数値型だとエラーになりますので、以下の様に文字型に変換してみて下さい。
17
+ 尚、質問の際には型なども提供すべき重要な情報です。
18
+ ```SQL
19
+ select id
20
+ , extract(hour from diff_time) * 3600
21
+ + extract(minute from diff_time) * 60
22
+ + extract(second from diff_time) as diff_second
23
+ from (
24
+ select id
25
+ , max(to_timestamp(to_char(start), 'HH24MISS')
26
+ - min(to_timestamp(to_char(start), 'HH24MISS') as diff_time
27
+ from hoge
28
+ group by id
29
+ ) t
14
30
  ```