Jump to content

PHP - date field


wilna

Recommended Posts

Hi

I have a date of birth field(dob) in my table, eg 16/05/2011 (dd/mm/yyyy).  I need to run a query but it must not include the year, how do I do that?

 

$sql = "SELECT * FROM detail WHERE dob='$mydate'";

 

The dob is in the format dd/mm/yyyy, how do I change my query to just use dd/mm?

Thank you

Link to comment
Share on other sites

The dob is in the format dd/mm/yyyy, how do I change my query to just use dd/mm?

 

You'll need to use the proper 'date' data type first, which will store the date in the format "YYYYMMDD".

Link to comment
Share on other sites

You could break apart the date with explode():

 

list($datePart_day, $datePart_month, $datePart_year) = explode('/', $mydate);

 

 

Then just use the new variables in the query:

 

$sql = "SELECT * FROM detail WHERE dob LIKE '%$datePart_month-$datePart_day'";

 

 

Of course you may need to do some checking to make sure month and day are valid. And make sure they are padded with zeros if needed.

Link to comment
Share on other sites

@cyberRobot

 

It would be better to use the built-in MySQL functions for this, to avoid splitting the logic and it's a lot more efficient than using a LIKE statement.

 

@wilna

 

Ah okay great - though that wasn't what you said originally. Anyway you want to use the DATE() and MONTH() functions to do this:

 

select * from table where date(dob) = 16 and month(dob) = 5;

Link to comment
Share on other sites

Thank you both!  The following solved my problem:

 

$myDate = date('d');
$myDate1 = date('m');
.....
$sql = "SELECT * FROM detail WHERE month(dob)='$myDate1'and day(dob)='$myDate'";

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.