sql >> データベース >  >> RDS >> Mysql

MySQLで日時値に時間を追加する方法

    問題:

    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’.   
    

    1. SQLServerで文字列から時間データを抽出または変換する方法

    2. メモリ内でのみPostgreSQLを実行する

    3. すべてのクエリをmysqlに記録します

    4. SQL Developer(Oracle)でクエリ結果をCSVファイルにエクスポートする方法