ホームページ  >  に質問  >  本文

mysql の時間型フィールド (時間、分、秒まで正確) を比較するにはどうすればよいですか?

create_time フィールドに基づいてデータをフィルターする必要があります。SQL ステートメントは次のようになります:

リーリー

しかし、この方法にはバグがあることが分かりました。上限時間 (上図の矢印) が大きすぎるとエラーが報告されます。以下に示すように:


その理由は、unix_timestamp 関数は時間を秒に変換し、時間を大きくしすぎてはいけないためです。

質問: 時間をフィルターする他に良い方法はありますか?
この問題は一般的にどのように解決されますか?アドバイスをお願いします、ありがとうございます...

阿神阿神2693日前865

全員に返信(2)返信します

  • 巴扎黑

    巴扎黑2017-06-06 09:54:27

    UNIX_TIMESTAMP返回的是INTEGER而不是BIGINT したがって、2038 年 (これも 2106 年) を超えることはできません。

    試してみませんかcreate_time BETWEEN '2016-05-25 14:07:56 AND '2017-05-25 14:07:56'?

    さらに、計算の利便性を追求する場合は、2038 年問題が発生しないように、time カラムのタイプを BIGINT に設定し、Unix タイムスタンプをミリ秒単位で保存することをお勧めします。

    返事
    0
  • 世界只因有你

    世界只因有你2017-06-06 09:54:27

    リーリー

    ミリ秒を追加する場合は、コロン:,

    の使用に注意してください。 リーリー

    返事
    0
  • キャンセル返事