2012-01-25 6 views
1

MySQLでは、date_createdがlast_updatedと同じである表のすべての行を検索する(可能な場合)問合せを作成する必要があります。私は時間を無視する必要があるこすりです。基本的には、同じ日に作成され、アクティブ化されたユーザーの行を探しています(私たちはアクティブ化の日付を保存しません)。だからおそらく日付は同じだろうが、時間は異なるかもしれない。問合せ時間のないdate_createdの場所は、時間のないlast_updatedと同じです

SELECT * 
    FROM table_name 
WHERE DATE_FORMAT(date_created, '%Y-%m-%d') = DATE_FORMAT(last_updated, '%Y-%m-%d') 
+1

どのデータベースについてですか? – wweicker

答えて

2

あなたはdatetime値の日付部分のみを返すDATE()機能を、使用することができます。これにより、値の日付部分だけを比較することができます。

SELECT * FROM table_name 
WHERE DATE(date_created) = DATE(last_updated) 

タイムゾーンはここで関連している可能性があります。したがって、DATE()関数を使用する前に、日付時刻の値をCONVERT_TZ()を使用してユーザーのタイムゾーンにキャストすることができます。

2

これを試してみてください

SELECT * 
FROM table_name 
WHERE day(date_created) = day(last_updated) and 
month(date_created) = month(last_updated) and 
year(date_created) = year(last_updated) 
0

きれいではありませんがなく、動作します:

関連する問題