2017-02-11 13 views
0

今日、月、年のデータを取得する必要がありますが、テーブルの時間はタイムスタンプになります。ここで今日のデータを取得する必要がありますが、日付はタイムスタンプです。これはどうすればいいですか?

は、私がしようとしているが、それは

$today = date('m-j-Y'); 
$result99 = mysqli_query($res, "SELECT * FROM send_data WHERE sponsor='$login' AND checked='1' AND done='1' AND DATE(m-j-Y, post_time) = '$today' ORDER BY id DESC"); 

post_timeは、テーブル内のフィールド名です動作しないものです。私は小文字の日付も試してみましたが、どちらもうまくいきませんでした。

助けてください。私は既にStack Overflowで見つけようとしましたが、正しく検索していないか、ここにはありません。

+0

あなたは完璧に動作し、それ 'とDATE(post_time)= CURDATE()' – Qirel

答えて

1

まず、クエリでパラメータを使用します。しかし、それとは別に、ちょうど内蔵の日付/時刻関数を使用します。

SELECT * 
FROM send_data 
WHERE sponsor='$login' AND checked='1' AND done='1' AND 
     date(post_time) = curdate() 
ORDER BY id DESC; 

post_timeはUnixのタイムスタンプである場合、あなたはfrom_unixtime()を使用することができます。

SELECT * 
FROM send_data 
WHERE sponsor='$login' AND checked='1' AND done='1' AND 
     date(from_unixtime(post_time)) = curdate() 
ORDER BY id DESC; 

注:より良い方法がありますパフォーマンスが問題で、適切なインデックスがある場合は、これらのクエリを作成します。

年と月の最も単純な方法はおそらくformat()です。例えば:

 format(date(from_unixtime(post_time)), '%Y-%m') = format(curdate(), '%Y-%m') 
+0

を作り、ネイティブMySQL関数を使用することができます。私は1つの質問があります。私は今、今月と今年を得るためにその仕事をすることができますか? –

+0

@RandyThomas 。 。私はあなたのコメントを理解していません。 'curdate()'は現在の日付を取得します。これは現在の月と年です。今月からのデータが必要な場合は、別の質問をしてください。 –

+0

今日からデータを取得するだけでなく(11日目)、1か月間(例1月)からデータを取得する必要があり、今年のデータを取得するために別の行が必要です(例2017)。私は今日、今月、今年のデータだけを見たいと思ったら人々が選ぶことを許可しようとしています。最初の質問で私が今日、毎月、そして一年について質問したときに、全く新しい質問をするのは嫌です。 –

関連する問題