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

回答編集履歴

3

MySQLに関する質問を見落としていたため追記

2021/06/13 15:11

投稿

hallen0225
hallen0225

スコア587

answer CHANGED
@@ -1,10 +1,12 @@
1
1
  細かいところですが、Time関数でなく、「Time型」です。
2
2
  Time型というのは、日時(2021/06/13 23:30:00)の時間の部分を表すものなので、最大で"23:59:59"までとなっています。(これはTime型の仕様で、どうしようもありません)
3
3
 
4
- どう対処するかはなかなか悩ましいところで、
4
+ 24時間を超える値にJavaでどう対処するかはなかなか悩ましいところで、
5
5
  ・String型→時間の計算がややしづらいです(計算が不要ならString型で十分)
6
6
  ・Duration型→計算は簡単なのですが、文字列からDuration型に変換したり、Duration型を文字列で表示するときのフォーマットが"P2DT23H30M"(2日と23時間30分)のような、やや特殊なフォーマットになっています。"53:30:00"のようなフォーマットと上記のフォーマットを相互変換する処理は自前で書く必要があります
7
7
 
8
8
  というように、どちらにも一長一短あるような印象です。
9
9
 
10
- (追記)上記の相互変換に関して、検索するとLocalTime型に変換して、というように出てくるかと思うのですが、LocalTime型も"23:59:59.999999999"が最大値なので、24時間を超える時間は扱えません。
10
+ (追記)上記の相互変換に関して、検索するとLocalTime型に変換して、というように出てくるかと思うのですが、LocalTime型も"23:59:59.999999999"が最大値なので、24時間を超える時間は扱えません。
11
+
12
+ (更に追記)840時間を超える時間をSQLで記録する場合、シンプルにfloat型やdouble型というわけにはいかないでしょうか??(3時間半なら3.5というように、数値を記録する)

2

内容に少々不備があったため修正

2021/06/13 15:10

投稿

hallen0225
hallen0225

スコア587

answer CHANGED
@@ -2,8 +2,8 @@
2
2
  Time型というのは、日時(2021/06/13 23:30:00)の時間の部分を表すものなので、最大で"23:59:59"までとなっています。(これはTime型の仕様で、どうしようもありません)
3
3
 
4
4
  どう対処するかはなかなか悩ましいところで、
5
- ・String型→時間の計算や、一部分の抽出がややしづらいです(計算が不要ならString型で十分)
5
+ ・String型→時間の計算がややしづらいです(計算が不要ならString型で十分)
6
- ・Duration型→計算は簡単なのですが、文字列からDuration型に変換したり、Duration型を文字列表示するときのフォーマットが"P2DT23H30M"(2日と23時間30分)のような、やや特殊なフォーマットになっています。"53:30:00"のようなフォーマットと上記のフォーマットを相互変換する処理は自前で書く必要があります
6
+ ・Duration型→計算は簡単なのですが、文字列からDuration型に変換したり、Duration型を文字列表示するときのフォーマットが"P2DT23H30M"(2日と23時間30分)のような、やや特殊なフォーマットになっています。"53:30:00"のようなフォーマットと上記のフォーマットを相互変換する処理は自前で書く必要があります
7
7
 
8
8
  というように、どちらにも一長一短あるような印象です。
9
9
 

1

補足説明を追記

2021/06/13 15:04

投稿

hallen0225
hallen0225

スコア587

answer CHANGED
@@ -5,4 +5,6 @@
5
5
  ・String型→時間の計算や、一部分の抽出がややしづらいです(計算が不要ならString型で十分)
6
6
  ・Duration型→計算は簡単なのですが、文字列からDuration型に変換したり、Duration型を文字列表示するときのフォーマットが"P2DT23H30M"(2日と23時間30分)のような、やや特殊なフォーマットになっています。"53:30:00"のようなフォーマットと上記のフォーマットを相互変換する処理は自前で書く必要があります
7
7
 
8
- というように、どちらにも一長一短あるような印象です。
8
+ というように、どちらにも一長一短あるような印象です。
9
+
10
+ (追記)上記の相互変換に関して、検索するとLocalTime型に変換して、というように出てくるかと思うのですが、LocalTime型も"23:59:59.999999999"が最大値なので、24時間を超える時間は扱えません。