問題:
MySQLデータベースの日時値に一定の時間を追加したい。
例:
私たちのデータベースには、flight_schedule
flight
列にデータがあります 、aircraft
、およびarrival_datetime
。
フライト | 航空機 | arrival_datetime |
---|---|---|
EK10 | L1201 | 2019-04-20 15:15:00 |
AY12 | K2001 | 2019-03-31 20:10:00 |
LA105 | F205 | 2019-08-03 11:15:00 |
LH30 | K256 | 2019-07-01 12:47:00 |
フライトごとに、フライトコード、航空機コード、および新しい到着日時を取得しましょう。 new_arrival_datetime
を計算するには 、到着ごとに現在の時刻に2時間10分を追加します。これは、これらのフライトがどれだけ遅れているかを示しています。
解決策:
ADDTIME()
を使用します 働き。作成するクエリは次のとおりです。
SELECT flight, aircraft, ADDTIME(arrival_datetime, ‘2:10’) AS new_arrival_datetime FROM flight_schedule;
クエリの結果は次のとおりです。
フライト | 航空機 | new_arrival_datetime |
---|---|---|
EK10 | L1201 | 2019-04-20 17:25:00 |
AY12 | K2001 | 2019-03-31 22:20:00 |
LA105 | F205 | 2019-08-03 13:25:00 |
LH30 | K256 | 2019-07-01 14:57:00 |
ディスカッション:
日時/タイムスタンプ/時刻の値に特定の時刻を追加して新しい日時を選択する場合は、ADDTIME()関数を使用します。
この関数は2つの引数を取ります。最初の引数は、時間を追加する日時です。これは、time / datetime/timestamp値またはtime/datetime/timestamp列の名前を返す式にすることができます。この例では、arrival_datetime
を使用します datetimeの列 データ・タイプ。
2番目の引数は、最初の引数に追加する時間を含む文字列です(この例では、「2:10」、つまり2時間10分)。
日時/時刻の値に秒の小数部、さらには日数を追加することもできます。以下のクエリは、日付と時刻に3日、1時間、1分、1秒、および111秒を追加します。
SELECT ADDTIME('2019-02-05 10:12:11', '3 1:1:1.111');
戻ります:
2019-02-08 11:13:12.111000
ADDTIME()は、新しい時刻の文字列を返します。この例では、フライトの新しい到着時刻「EK10」 は「2019-04-2017:25:00」です–元の日時から2時間10分
‘2019-04-20 15:15:00’.