0

やあみんな..次の形式で日付を保存しているテーブルがあります:'YYYY-mm-dd00-00-00'。ここで、selectステートメントを作成し、日付が指定した日付の間にあるすべてのレコードを表示したいと思います。このような:

$c=mysql_query("SELECT * FROM useri where data_creare_user BETWEEN '2012-06-01' AND '20120-06-05' ");   

$d=mysql_fetch_array($c);

echo $d['nume'];

どういうわけかテーブルから日付を変換する必要があることは知っていますが、それを理解できないようです。そのselectステートメントに基づいてレコードを表示するように教えてください。

4

2 に答える 2

1

data_creare_user列が適切な時間データ型のデータ型でない場合は、そうである必要があります。それで:

SELECT *
FROM   useri
WHERE  DATE(data_creare_user) BETWEEN '2012-06-01' AND '2012-06-05'
于 2012-06-10T21:57:19.557 に答える
0

VARCHARを使用して日付を文字列として保持しているようです。スキーマを変更できる場合は、DATEまたはDATETIMEタイプを使用する方がよい場合があります。そうは言っても、MySQLはこれを支援する機能STR_TO_DATE()を提供します。クエリは次のようになります。

SELECT * FROM useri WHERE STR_TO_DATE(data_creare_user, '%Y-%m-%d %H-%i-%s') BETWEEN STR_TO_DATE('2012-06-01', '%Y-%m-%d') AND STR_TO_DATE('20120-06-05','%Y-%m-%d');
于 2012-06-10T22:08:57.727 に答える