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

MySQLのUNIX_TIMESTAMP()からUTC日時を取得する方法

    あなたの問題はCONVERT_TZではないと思います 、ただしFROM_UNIXTIME

    FROM_UNIXTIME 引数として整数を取ります-これは32ビットを意味します。

    今日のunix-timestampを使用する場合:1480546792 、右に24ビットシフト-unix_timeの有効なパラメータの32ビット制限を超えています 。

    from_unixtime 2147483647までのパラメータのみを処理できます -つまり、2038-01-19 04:14:07まで機能します

    私もこの問題に遭遇しました。2002年以降、この問題の修正は「開発中」です。

    最終的に解決されるまで、date_addを使用して回避策を使用する必要があります 。

    の代わりに
    from_unixtime (x)
    

    使用

    date_add(from_unixtime(0), INTERVAL x second)
    

    結果:

    SELECT from_unixtime (2147483647); //2038-01-19 04:14:07 
    SELECT from_unixtime (2147483648); //NULL
    
    SELECT date_add(from_unixtime(0), Interval 2147483647 second) //2038-01-19 04:14:07
    SELECT date_add(from_unixtime(0), Interval 2147483648 second) //2038-01-19 04:14:08
    


    1. MySQLバックアップのベストプラクティス

    2. MySqlテーブル列の1つに一意のランダムな文字列を生成するにはどうすればよいですか?

    3. ターゲットマシンがアクティブに接続を拒否したため、接続できませんでした(PHP / WAMP)

    4. MySQLiプリペアドステートメントをループで使用する場合、いつbind_paramを呼び出しますか?