0

保存された日付から日付を取得したいvarchar(例12-21-1990)。phpを使用explodeして現在の日付を取得できますが、mysqlを介して取得したかったのです。私は次のようなクエリを使用しています:

$count=mysql_query("SELECT u.fname, u.lname, u.profile_pic, u.uid, u.bday, f.uid, f.friend_id, f.status FROM friend_list f, users_profile u WHERE f.uid = '$id' AND f.status = '1' AND u.uid = f.friend_id "); 

上記のクエリでは、ユーザーの友達にすべての詳細を取得しますが、誕生日が今日である友達の詳細のみを取得したかったのです。これどうやってするの?

4

6 に答える 6

2

php date関数を使用して今日の日付を取得し、それを変数に割り当てて、u.bdayをそれと照合することができます。そのようです :

$count=$today = date("m-d-Y");

mysql_query("SELECT u.fname, u.lname, u.profile_pic, u.uid, u.bday, f.uid, f.friend_id, f.status FROM friend_list f, users_profile u WHERE f.uid = '$id' AND f.status = '1' AND u.uid = f.friend_id AND u.bday = $today");
于 2012-08-21T12:04:21.660 に答える
0

bday列のデータ型をに変更して関数DATEを使用しますCUREDATE()

于 2012-08-21T12:07:28.803 に答える
0

簡単に、STR_TO_DATE MySQL関数を使用して、varcharを日付に変換する必要があります。

$count=mysql_query("SELECT u.fname, u.lname, u.profile_pic, u.uid, u.bday, f.uid, f.friend_id, f.status FROM friend_list f, users_profile u WHERE f.uid = '$id' AND f.status = '1' AND u.uid = f.friend_id AND STR_TO_DATE(u.bday, '%m-%d-%Y')=DATE_FORMAT(CURDATE().'%m-%d-%Y') "); 

ただし、bday列を日付型に変更することを強くお勧めします。

于 2012-08-21T12:17:00.253 に答える
0

これを試して :

date_format(your_friend_birthdate,'%Y-%m-%d')=date_format(now(),'%Y-%m-%d')

完全なクエリ:-

    SELECT u.fname, u.lname, u.profile_pic, u.uid, u.bday, f.uid, f.friend_id, f.status FROM 
friend_list f, users_profile u WHERE f.uid = '$id' AND f.status = '1' AND u.uid = f.friend_id 
and month(u.bday)=month(now()) and date(u.bday)=date(now());

また

SELECT u.fname, u.lname, u.profile_pic, u.uid, u.bday, f.uid, f.friend_id, f.status FROM 
    friend_list f, users_profile u WHERE f.uid = '$id' AND f.status = '1' AND u.uid = f.friend_id 
    and month(u.bday)=month(now()) and day(u.bday)=day(now());
于 2012-08-21T12:19:26.660 に答える
0
SELECT u.fname, u.lname, u.profile_pic, u.uid, u.bday, f.uid, f.friend_id, f.status FROM 
friend_list f, users_profile u WHERE f.uid = '$id' AND f.status = '1' AND u.uid = f.friend_id 
and CAST(CONCAT(SUBSTRING(u.bday,7,11),'/',SUBSTRING( u.bday,1,2 ),'/',SUBSTRING(u.bday,4,2 )) AS DATE) = date_format(now(),'%Y-%m-%d');
于 2012-08-21T12:29:31.303 に答える
0

こんにちはちょうど解決策を見つけて、それが誰かを助けることができるようにそれを共有したかったです。

SELECT u.fname, u.lname, u.profile_pic, u.uid, u.bday, f.uid, f.friend_id, f.status FROM 
    friend_list f, users_profile u WHERE f.uid = '3' AND f.status = '1' AND u.uid = f.friend_id 
      and    DAY(STR_TO_DATE(u.bday, '%m-%d-%y')) = DAY(CURDATE()) AND
    MONTH(STR_TO_DATE(u.bday, '%m-%d-%y')) = MONTH(CURDATE())
于 2012-08-21T19:59:03.203 に答える