質問編集履歴
4
誤字
test
CHANGED
File without changes
|
test
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
(1) [Oracle Live SQL](https://livesql.oracle.com/)で以下のSQLを実行してDATE型の列を持つsampleテーブルを作成
|
16
16
|
|
17
|
-
```
|
17
|
+
```sql
|
18
18
|
|
19
19
|
CREATE TABLE sample(
|
20
20
|
|
@@ -28,7 +28,7 @@
|
|
28
28
|
|
29
29
|
(2-1)以下の各SQLを実行してレコードを登録
|
30
30
|
|
31
|
-
```
|
31
|
+
```sql
|
32
32
|
|
33
33
|
INSERT INTO sample VALUES ('15-Apr-00');
|
34
34
|
|
@@ -42,7 +42,7 @@
|
|
42
42
|
|
43
43
|
(2-2)以下の各SQLを実行してレコードを登録しようとしたがエラーで登録できなかった。
|
44
44
|
|
45
|
-
```
|
45
|
+
```sql
|
46
46
|
|
47
47
|
INSERT INTO sample VALUES ('15-Apr-00 00:00:00');
|
48
48
|
|
@@ -68,7 +68,7 @@
|
|
68
68
|
|
69
69
|
また、sampleテーブルのcolumnsを確認するとLengthは7で「 00:00:00」は格納されていなかった。
|
70
70
|
|
71
|
-
```
|
71
|
+
```sql
|
72
72
|
|
73
73
|
SELECT * FROM sample WHERE regdate LIKE '%00%';
|
74
74
|
|
3
誤字
test
CHANGED
File without changes
|
test
CHANGED
@@ -50,7 +50,9 @@
|
|
50
50
|
|
51
51
|
```
|
52
52
|
|
53
|
-
|
53
|
+
エラー文は以下:
|
54
|
+
|
55
|
+
```
|
54
56
|
|
55
57
|
date format picture ends before converting entire input string ORA-06512: at "SYS.DBMS_SQL", line 1721
|
56
58
|
|
2
指摘に合わせてコードの表記修正、LIVE SQLと書籍のリンクを追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
oracleのDATE型は日付だけでなく時刻の情報も格納しているとのことですが、時刻を登録できません。
|
2
2
|
|
3
|
-
黒本には「DATE型:日付、時刻を含む固定長7バイトの日付データ型。4桁年、月、日、時、分、秒を格納します。」とありますが、年月日しか格納できませんでした。
|
3
|
+
[黒本(12cSQL基礎 初版2刷)](https://www.shoeisha.co.jp/book/detail/9784798139883)のp.276には「DATE型:日付、時刻を含む固定長7バイトの日付データ型。4桁年、月、日、時、分、秒を格納します。」とありますが、年月日しか格納できませんでした。
|
4
4
|
|
5
5
|
|
6
6
|
|
@@ -12,23 +12,23 @@
|
|
12
12
|
|
13
13
|
【したこと】
|
14
14
|
|
15
|
-
(1) Oracle Live SQLで以下のSQLを実行してDATE型の列を持つsampleテーブルを作成
|
15
|
+
(1) [Oracle Live SQL](https://livesql.oracle.com/)で以下のSQLを実行してDATE型の列を持つsampleテーブルを作成
|
16
16
|
|
17
|
+
```oracle sql
|
17
18
|
|
19
|
+
CREATE TABLE sample(
|
18
20
|
|
19
|
-
|
21
|
+
regdate date
|
20
22
|
|
21
|
-
|
23
|
+
);
|
22
24
|
|
23
|
-
|
25
|
+
```
|
24
|
-
|
25
|
-
|
26
26
|
|
27
27
|
|
28
28
|
|
29
29
|
(2-1)以下の各SQLを実行してレコードを登録
|
30
30
|
|
31
|
-
|
31
|
+
```oracle sql
|
32
32
|
|
33
33
|
INSERT INTO sample VALUES ('15-Apr-00');
|
34
34
|
|
@@ -36,19 +36,25 @@
|
|
36
36
|
|
37
37
|
INSERT INTO sample VALUES (sysdate);
|
38
38
|
|
39
|
-
|
39
|
+
```
|
40
40
|
|
41
41
|
|
42
42
|
|
43
43
|
(2-2)以下の各SQLを実行してレコードを登録しようとしたがエラーで登録できなかった。
|
44
44
|
|
45
|
-
|
45
|
+
```oracle sql
|
46
46
|
|
47
|
+
INSERT INTO sample VALUES ('15-Apr-00 00:00:00');
|
47
48
|
|
49
|
+
INSERT INTO sample VALUES ('15-Apr-01 00:00:00');
|
48
50
|
|
49
|
-
|
51
|
+
```
|
50
52
|
|
53
|
+
```エラー文:
|
54
|
+
|
51
|
-
|
55
|
+
date format picture ends before converting entire input string ORA-06512: at "SYS.DBMS_SQL", line 1721
|
56
|
+
|
57
|
+
```
|
52
58
|
|
53
59
|
|
54
60
|
|
@@ -60,6 +66,8 @@
|
|
60
66
|
|
61
67
|
また、sampleテーブルのcolumnsを確認するとLengthは7で「 00:00:00」は格納されていなかった。
|
62
68
|
|
69
|
+
```oracle sql
|
63
70
|
|
71
|
+
SELECT * FROM sample WHERE regdate LIKE '%00%';
|
64
72
|
|
65
|
-
|
73
|
+
```
|
1
したことを追記、合わせて質問内容を変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
oracleでDATE型のレコードを
|
1
|
+
oracleでDATE型のレコードに時刻を登録する方法
|
test
CHANGED
@@ -1 +1,65 @@
|
|
1
|
+
oracleのDATE型は日付だけでなく時刻の情報も格納しているとのことですが、時刻を登録できません。
|
2
|
+
|
3
|
+
黒本には「DATE型:日付、時刻を含む固定長7バイトの日付データ型。4桁年、月、日、時、分、秒を格納します。」とありますが、年月日しか格納できませんでした。
|
4
|
+
|
5
|
+
|
6
|
+
|
1
|
-
|
7
|
+
「2000-01-01 00:00:00」や「2020-08-20 21:24:00」、「01-JAN-00 00:00:00」のような形で格納されると思っていたのですが違うのでしょうか?
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
【したこと】
|
14
|
+
|
15
|
+
(1) Oracle Live SQLで以下のSQLを実行してDATE型の列を持つsampleテーブルを作成
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
CREATE TABLE sample(
|
20
|
+
|
21
|
+
regdate date
|
22
|
+
|
23
|
+
);
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
(2-1)以下の各SQLを実行してレコードを登録
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
INSERT INTO sample VALUES ('15-Apr-00');
|
34
|
+
|
35
|
+
INSERT INTO sample VALUES ('15-Apr-01');
|
36
|
+
|
37
|
+
INSERT INTO sample VALUES (sysdate);
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
(2-2)以下の各SQLを実行してレコードを登録しようとしたがエラーで登録できなかった。
|
44
|
+
|
45
|
+
エラー文はどちらも「date format picture ends before converting entire input string ORA-06512: at "SYS.DBMS_SQL", line 1721」
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
INSERT INTO sample VALUES ('15-Apr-00 00:00:00');
|
50
|
+
|
51
|
+
INSERT INTO sample VALUES ('15-Apr-01 00:00:00');
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
(3)以下のSQLを実行。
|
56
|
+
|
57
|
+
想定結果:時刻はデフォルトで「00:00:00」が登録されるはずなので「15-Apr-00」「15-Apr-01」が抽出される。
|
58
|
+
|
59
|
+
実際の結果:「15-Apr-00」の1行だけ表示された。
|
60
|
+
|
61
|
+
また、sampleテーブルのcolumnsを確認するとLengthは7で「 00:00:00」は格納されていなかった。
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
SELECT * FROM sample WHERE regdate LIKE '%00%';
|