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

MYSQL日時は最も近い時間に丸められます

    更新: https://stackoverflow.com/a/21330407/480943 > より良い答えです。

    日付演算でそれを行うことができます:

    SELECT some_columns,
        DATE_ADD(
            DATE_FORMAT(the_date, "%Y-%m-%d %H:00:00"),
            INTERVAL IF(MINUTE(the_date) < 30, 0, 1) HOUR
        ) AS the_rounded_date
    FROM your_table
    

    説明:

    • DATE_FORMAT DATE_FORMAT(the_date, "%Y-%m-%d %H:00:00") 最も近い時間に切り捨てられた日付を返します(分と秒の部分をゼロに設定します)。

    • MINUTE MINUTE(the_date) 日付の分の値を取得します。

    • IF :これは条件付きです。パラメータ1の値がtrueの場合は、パラメータ2を返し、それ以外の場合は、パラメータ3を返します。したがって、IF(MINUTE(the_date) < 30, 0, 1) 「分の値が30未満の場合は、0を返し、それ以外の場合は1を返します」を意味します。これは、丸めに使用するものです。これは、追加し直す時間数です。

    • DATE_ADD :これにより、ラウンドの時間数が結果に追加されます。



    1. MySQLがFULLOUTERJOINSをサポートしていない理由はありますか?

    2. CSVから読み取り、SQLクエリを実行するPHPファイルを作成する

    3. 人々が登録するときに重複するユーザー名を防ぐ方法は?

    4. Microsoft Azure:それが何であり、あなたのビジネスがどのように利益を得ることができるか