2016-10-03 8 views
0

以下のような修正クエリがあります。このクエリを別の瞬間に実行するたびに私が理解しようとするいくつかの奇妙な振る舞いは、別の結果をもたらします:(134,143,147,152 、158)MySQL 5.6のcount関数の異常な動作

これは、作成したテーブルで定義する方法である:

`user_registration_timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 

SELECT COUNT(*)user_registration_timestamp> = "2016年10月3日12時33分26秒" とuser_registration_timestamp <「ユーザーから2016-10-03 15:33:26 ";

どうしてですか?タイムスタンプは固定されていますが、それは可変ではありませんので、MySQLでこの奇妙な動作を見る理由は何ですか?

+0

根本的なデータが変更された場合、決定論的なクエリは異なるデータセットを返すことができますが、そうであるかどうか尋ねることはありません。 –

+0

@ÁlvaroGonzálezuser_register_timestampがすでに渡されていると特定の時間? –

+0

入手しました。私の答えをチェックしてください。 –

答えて

0

新しいユーザーが登録されている間は、クエリのカウントが異なります。 COUNT(*)*に置き換えると、詳細がわかります。

私は、2016-10-03 15:33:26が過去の日付であると仮定しているため、実際には確認していないと思います。したがって、新しいユーザーがいる可能性はありません。実際には現地時間であり、今のところ(2016-10-03 14:30 UTC)東部タイムゾーンの過去の日付で、それ以外の場所にはまだ来ています。

MySQLサーバがローカルタイムゾーンを使用するように設定されていないが、あなたのコードがそうであると仮定した場合、混乱する可能性があります。

+0

あなたの答えのためのthxが、私はこれが起こっている場合は確信したい、そこにmysqlのtは東のTSを強制的にコメントはありますか?どうしたらいいですか? –

+0

[mysqlのタイムゾーンを設定する方法](http://stackoverflow.com/questions/930900/how-to-set-time-zone-of-mysql#19069310) –

+0

いいえ、私のクエリを強制的に使用する方法ローカルTS? -iはさらに情報を追加しました。 –

関連する問題