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

mysqlクエリでのIST時間の使用

    SQLステートメントを使用して、現在のMySQLセッションのタイムゾーン設定を取得できます。

    mysql> SELECT @@session.time_zone;
    

    DBAがMySQLのタイムゾーンを設定していない場合、デフォルトでSYSTEMの値になります。 、オペレーティングシステムのタイムゾーンを表します。

    http://dev.mysql.com/doc /refman/5.5/en/time-zone-support.html

    フォローアップ:

    SQLステートメントの例のような述語:

    select * from mytable where dt > current_ist_datetime
    

    (与えられたdt およびcurrent_ist_datetime データ型のDATETIMEDATETIMEに関連付けられたタイムゾーン情報がないため、値の比較はタイムゾーン変換とは無関係になります。 価値。

    つまり、データ型DATETIMEの列から返される値です。 MySQLサーバーのtime_zone設定の影響を受けません(SELECT @@global.time_zone )またはMySQLセッション(SELECT @@session.time_zone

    NOW()によって返される値 ただし、関数はセッションのtime_zone設定の影響を受けます。

    これをISTに返すには、セッションのtime_zoneが正しく指定されていることを確認してください(例:

    )。
    SET VARIABLES time_zone = "+05:30"
    

    (注:セッションが接続プールから取得され、接続プールから返される場合、プールの他のユーザーは別のtime_zoneを期待していない可能性があります; ...)

    (注:上記は、MySQLのDATETIMEデータ型の実装とJavaのDateオブジェクトの実装との間の「インピーダンスの不一致」(違い)によって引き起こされるJDBCドライバーによってもたらされる混乱を完全に無視します。JDBC接続を介してDATETIME値を渡す場合、それは全体の'別の混乱の球です。)



    1. MySQLInnodbでのダングリングトランザクション

    2. mysqlテーブルから一意のキーを削除する方法

    3. 連結フィールドの検索

    4. PHPとHTMLを介してmysqlのゼロ以外のフィールドのみを表示するにはどうすればよいですか?