ご存知のとおり、CURDATE() は日付単位のみを返すため、CURDATE() で時間単位の INTERVAL を使用するとあいまいさが生じます。 MySQL は常に現在の日付を「00:00:00」時間で表すため、CURDATE() で時間単位の INTERVAL を使用する場合、時刻の計算ではこの時間が考慮されます。次の例でそれを明確にします -
mysql> Select CURDATE() + INTERVAL 0 hour; +-----------------------------+ | curdate() + Interval 0 hour | +-----------------------------+ | 2017-10-28 00:00:00 | +-----------------------------+ 1 row in set (0.00 sec) mysql> select CURDATE() + INTERVAL 1 hour; +-----------------------------+ | curdate() + Interval 1 hour | +-----------------------------+ | 2017-10-28 01:00:00 | +-----------------------------+ 1 row in set (0.00 sec) mysql> Select CURDATE() + INTERVAL 2 hour; +-----------------------------+ | CURDATE() + INTERVAL 2 hour | +-----------------------------+ | 2017-10-28 02:00:00 | +-----------------------------+ 1 row in set (0.00 sec)
以上がCURDATE() 関数で時間単位の INTERVAL を使用すると、MySQL はどのように動作しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。