0

2012 年 7 月 6 日の日付をこの形式でテーブルに保存しました。日付が今日の日付である場合、それらをループして管理者にメールを送信したいと思います。これを試しましたが、最初に日付形式を調整する必要があると思います。

SELECT email, name, phone_no FROM table WHERE TO_DAYS(date)=To_DAYS(NOW());
 If true then send email to admin.
 //eg. John's birthday is today. Pls call him on 00001332424;

ありがとう

4

1 に答える 1

1

はい、最初にネイティブの mysql 日付/時刻形式に変換する必要があります。日付を文字列として保存することは、その日付を操作する必要がない場合、すべて問題なくダンディです。しかし、そうするとすぐに、苦痛の世界に陥ります - インデックスを使用できない、クエリを実行するたびにすべての文字列を変換する必要があるなど...

その文字列をネイティブの日付フィールドに変換したら、あとは簡単なことです。

SELECT .... WHERE datefield=CURDATE();

「ネイティブ」形式で日付を取得したら何ができるかを理解するために、mysql の日付/時刻操作関数を次に示します。 -time-functions.html

それらはたくさんありますが、ほとんどすべてがネイティブの日付フィールドでのみ機能し、任意の文字列では機能しません (string<->native を変換するものを除く)。

于 2012-06-05T15:06:28.793 に答える