問題タブ [convert-tz]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - タイムゾーンで適切な瞬間を計算する
タイムゾーン (例: アメリカ/ボゴタ) とタイムゾーン オフセット (例: -25200) を持つユーザー テーブルがあります。
ドイツ (ヨーロッパ/ベルリン) に Web サーバーがあり、米国、アフリカ、またはアジアのユーザーが午前 6 時に適切なタイミングでメールを送信したいと考えています。
次のphpコードでオフセットを取得し、ユーザーテーブルに挿入します。
「タイムゾーンとオフセットを取得する」ことですべてがうまくいくようですが、1つのクエリでそのコンポーネントをクエリしてユーザーアイテムを取得する方法がわかりません。
誰かがそれを解決するための助けやヒントを教えてもらえますか?
mysql - mysql でのタイムゾーンの変換 (convert_tz)
convert_tz は mysql でどのように機能しますか?Web 上の mysql サイトを調べているときに、この関数に遭遇しました。複製しようとすると、null 値が返されます。なぜこれが機能しないのですか? 以下はスクリプトです
これは、convert_tz() の Web に表示される出力です。
mysql - MYSQLクエリでタイムゾーンを効率的に変換する最良の方法
私のテーブル「my_logs」には約 20,000,000 のレコードがあり、数日以内に各日付にいくつのログがあるかを調べたいと考えています。
みたいな結果になりたい
+------------+---------+
| date | count |
+------------+---------+
| 2016-07-01 | 1623 |
| 2016-07-02 | 1280 |
| 2016-07-03 | 2032 |
+------------+---------+
以下のこのクエリは、完了するのに数ミリ秒しかかかりません。
クエリの説明:
+------------+---------+-------+-----------------------------+
|select_type | table | type | possible_keys |
+------------+---------+-------+-----------------------------+
| SIMPLE | my_logs| index | index_my_logs_on_created_at |
+------------+---------+-------+-----------------------------+
+-----------------------------+---------+----------+
| key | key_len | rows |
+-----------------------------+---------+----------+
| index_my_logs_on_created_at | 10 | 23458462 |
+-----------------------------+---------+----------+
+-----------------------------------------------------------+
| Extra |
+-----------------------------------------------------------+
| Using where; Using index; Using temporary; Using filesort |
+-----------------------------------------------------------+
ただし、各レコードのタイムゾーンを自国の時間に合わせて変換する必要があり、「日付」情報でグループ化する必要があるため、列自体を変換する必要があります。
両方
と
'%Y-%m-%d')
クエリを完了するのに約 12 秒かかります。
(説明は、上のクエリと同じです)
よくある問題だと思いますが、うまく対処する方法が見つかりません。もっと効率的な方法はありますか?ありがとう!
mysql - mysql convert_tz で同じ時刻の 2 つのタイム ゾーンの順序を切り替えると、なぜ違いが生じるのですか?
これは '2020-07-01 00:29:59' を返します。これは、EST とベネズエラが実際には同じ時間を共有しているためです。
これは完全に理にかなっている「2020-06-30 23:59:59」を返します。
最初のクエリでは正しい時刻が返されないのに、2 番目のクエリでは返されるのはなぜですか?
助言がありますか?ありがとうございました!
mysql - MySql CONVERT_TZ が時間変換日に機能しない
タイムゾーンをローカル形式から UTC に変換しようとしましたが、1 つのケースを除いて正常に動作します。変換日 (27.03 02:00:00) で、GMT+1 から GMT+2 に移行するときのみ。
(変換バックは 30.10 の 03:00:00 です)
OK ->
SELECT CONVERT_TZ('2016-03-27 01:59:59','Europe/Vienna','UTC');
GMT +1 = 00:59:59
バグ -> SELECT CONVERT_TZ('2016-03-27 02:00:01','Europe/Vienna','UTC');
GMT +2 = 01:00:00
ここでバグが発生します。02:00:00 から 02:59:59 への変換時間である場合、時間は変換されず、指定された各分と秒は無視されます...
つまり、次のことを意味します。
02:00:00 -> 01:00:00
02:00:01 -> 01:00:00
02:59:59 -> 01:00:00
03:00:00 で、変換は再び問題ありません...
OK -> SELECT CONVERT_TZ('2016-03-27 03:00:00','Europe/Vienna','UTC');
GMT +2 = 01:00:00
このバグに関するアイデアや経験はありますか?