2016-07-18 4 views
0

assg_real_timestampという名前のテーブルのorder_onsite_interpreterカラムにタイムスタンプがあります。タイムスタンプするのに10分かかるすべてのレコードを選択するには?

assg_real_timestampがassg_real_timestampの10分前の行をすべて取得する必要があります。

ロジックは次のとおりです。セッションが開始される10分前(assg_real_timestampのようにセッションが開始されます)の行をすべて取得し、iosアプリケーションでプッシュ通知をユーザーに送信します。 セッションが開始する前に10分以下であれば、行をフェッチする必要があります。

これは私が止める例です。私は間違った質問をしたと思う。

SELECT * 
WHERE scheduling_type IN ('get_call', 'conference_call') 
AND push_notification_sent = 0 AND is_phone = 1 
AND assg_real_timestamp <= now() - INTERVAL 10 MINUTE 
+5

クエリのテーブル名が見つかりません! 'select * from TABLE..' – Saty

+0

この条件は不可能です(少なくとも1行で):assg_real_timestampがassg_real_timestampの10分前にある行をすべて取得する必要があります。サンプルデータと希望の結果が役に立ちます –

+0

私は質問を更新しました。詳細:order_on_interpreterからすべての行をフェッチする必要があります。ここで、 'assg_real_timestamp'は10分前にタイムスタンプが入ります。 – user3931314

答えて

1

これは、assg_real_timestampの値を持つすべての行を過去10分間に取得する方法です。

SELECT * FROM `<table_name>` 
WHERE scheduling_type IN ('get_call', 'conference_call') 
AND push_notification_sent = 0 
AND is_phone = 1 
AND assg_real_timestamp BETWEEN DATE_SUB(NOW() , INTERVAL 10 MINUTE) AND NOW() 

のMySQL:DATE_SUB()

も参照してください:だからMySQL Select rows where timestamp column between now and 10 minutes ago

0

誰もがタイムスタンプがその少ないGMT、中の列のタイムスタンプを調べることで、データベースからすべての行を取得する必要がある場合、今から5分()

SELECT orderID, scheduling_type, frm_lang, to_lang, customer_id, amount, 
onsite_con_phone, assg_frm_date, assg_frm_st, timezone FROM 
`order_onsite_interpreter` WHERE scheduling_type IN ('conference_call', 
'get_call') AND push_notification_sent =0 AND is_phone =1 AND 
DATE_SUB(CONVERT_TZ(DATE_FORMAT(FROM_UNIXTIME(assg_frm_timestamp), '%Y-%c-%d 
%T:%f'), '-7:00', '-0:00'),INTERVAL 5 MINUTE) BETWEEN CONVERT_TZ(DATE_SUB(NOW(), 
INTERVAL 5 MINUTE), '-7:00', '-0:00') AND CONVERT_TZ(NOW(), '-7:00', '-0:00') 

-7:00は、私のサーバーのタイムゾーンからGMTタイムゾーンに変換する必要がある場所です。私の値をGMTに同期させることは問題です。私はタイムスタンプと現在の値を比較できます。これは次のように動作します: セッションは02:03から開始します。つまり、02:03 - 00:05 = 01:58に1分ごとに起動されるcronジョブは、order_onsite_interpreterテーブルから行を取得する必要があります。行を取得した後、私は「あなたのスケジュールされたセッションは約5分で開始します。アプリにログインしてください」というメッセージとともにユーザーのアプリにプッシュ通知を送ります。また、push_notification_sent = 1に設定すると、ユーザーはcronジョブからのクエリが検出した5分の範囲でメッセージを受信しなくなります。

関連する問題