回答編集履歴

1

追記

2019/05/08 09:36

投稿

yambejp
yambejp

スコア114769

test CHANGED
@@ -2,6 +2,66 @@
2
2
 
3
3
  ```SQL
4
4
 
5
- select substring(concat(str_to_date(date_info,'%Y%m%d'),' ',sec_to_time(time_to_sec(concat(time_info,'00')))),1,16)
5
+ select substring(concat(str_to_date(date_info,'%Y%m%d'),' ',sec_to_time(time_to_sec(concat(time_info,'00')))),1,16);
6
6
 
7
7
  ```
8
+
9
+
10
+
11
+ # 応用
12
+
13
+
14
+
15
+ 上記を利用して仮想生成列で処理します
16
+
17
+ ```SQL
18
+
19
+ create table tbl(
20
+
21
+ id int primary key,
22
+
23
+ date_info char(8),
24
+
25
+ time_info char(4),
26
+
27
+ formated_dt char(16) as
28
+
29
+ (substring(concat(str_to_date(date_info,'%Y%m%d'),' ',sec_to_time(time_to_sec(concat(time_info,'00')))),1,16))
30
+
31
+ );
32
+
33
+ /* formated_dtが自動計算される仮想生成列 */
34
+
35
+
36
+
37
+ insert into tbl(id,date_info,time_info) values
38
+
39
+ (1,'20180106','0440'),
40
+
41
+ (2,'20180105','2840'),
42
+
43
+ (3,'20180104','5240');
44
+
45
+
46
+
47
+ /* 出力 */
48
+
49
+ select * from tbl;
50
+
51
+ ```
52
+
53
+
54
+
55
+ - 結果
56
+
57
+
58
+
59
+ |id|date_info|time_info|formated_dt|
60
+
61
+ |:--:|:--:|:--:|:--:|
62
+
63
+ |1|20180106|0440|2018-01-06 04:40|
64
+
65
+ |2|20180105|2840|2018-01-05 28:40|
66
+
67
+ |3|20180104|5240|2018-01-04 52:40|