-1

date(tyupe int(11) )というデータベース列に、日付を整数として格納しました。次に、変数$day、があり、それぞれの日のすべての行 (変数、$month、を$year表す) を取得する必要があります。$day$month$year

どうやってするか?

私はこの方法を試しました:

mysql_query("SELECT id FROM persons WHERE DATE_FORMAT( `date` , '%Y-%m-%d' ) =
            '".date("$year-$month-$day")."'")

しかし、残念ながらこれはうまくいきません...この問題を解決する方法を教えてください。

ありがとう

4

1 に答える 1

2

インデックスを引き続き利用できるようにするために、日付列を関数でラップする必要はありません。

dateこれは、列にインデックスが設定されている場合、シナリオで最も効率的な方法です。

$input_date = mktime(0, 0, 0, $month, $day, $year);
mysql_query("SELECT id FROM persons WHERE date = $input_date");

date列を実際のDATE型として実際に格納することをお勧めします。そうすれば、単純な整数ベースの UNIX タイムスタンプでは不可能な、あらゆる種類の説得力のある日付比較と計算を行うことができます。

于 2012-08-05T08:36:09.337 に答える