回答編集履歴

1

加筆修正

2018/04/17 11:39

投稿

退会済みユーザー
test CHANGED
@@ -1,5 +1,31 @@
1
+ 下記、机上のみで実行させてないのですみません。
2
+
3
+ fieldってところを、変換元データにしてください。
4
+
5
+
6
+
1
7
  substring関数を駆使して文字列を編集して加工するしか無いような気がします。
2
8
 
3
9
 
4
10
 
5
- cast(substring(field,1,4) || '-' || substring(field,5,2) || '-' || substring(field,7,2) || ' ' || substring(field,10,2) || ':' || substring(field,12,2) || ':' || substring(field,14,2) as timestamp)
11
+ `cast(substring(field,1,4) || '-' || substring(field,5,2) || '-' || substring(field,7,2) || ' ' || substring(field,10,2) || ':' || substring(field,12,2) || ':' || substring(field,14,2) as timestamp)`
12
+
13
+
14
+
15
+ 別なやり方を思いついた。
16
+
17
+ `make_date(cast(substring(field,1,4) as integer), cast(substring(field,5,2) as integer), cast(substring(field,7,2) as integer))`
18
+
19
+ で日付生成、
20
+
21
+ `make_time(cast(substring(field,10,2) as integer), cast(substring(field,12,2) as integer), cast(substring(field,14,2) as integer))`
22
+
23
+ で時刻生成なので、足し算するとか。
24
+
25
+ `make_timestamp(cast(substring(field,1,4) as integer), cast(substring(field,5,2) as integer), cast(substring(field,7,2) as integer), cast(substring(field,10,2) as integer), cast(substring(field,12,2) as integer), cast(substring(field,14,2) as integer))`
26
+
27
+ で直接タイムスタンプ生成でもいいかも。
28
+
29
+
30
+
31
+ 全然to_date()使ってないです。