Welcome to WebmasterWorld Guest from 188.8.131.52 , register , free tools , login , search , pro membership , help , library , announcements , recent posts , open posts Become a Pro Member
Ways of searching by relative dates and times in MySQL Anything similar to the NOW() command? otem
I'm using some queries in MySQL where I'm looking at data lying within certain time ranges.
I've learned about NOW(), but are there similar commands for looking up times in the past or future?
Right now I'm using the following structure:
$query=mysql_query("SELECT * FROM table WHERE created>='".date("Y-m-d H:i:s",time()-1800)."'");
Also, if I wanted to look up data that meets one requirement and one and/or the other of the a second requirement, can I use the following structure:
SELECT * FROM table WHERE x='$x' AND (y='$y' ¦¦ z='$z')
It seems to work for me, but I just wanted to make sure I'm not opening room for a bug or performance issues.
Playing around, it looks like I can do the follow:
NOW()-1800 would be 30 minutes in the past
CURDATE()-7 would be seven days ago
Is that right? If somebody could confirm this it would be much appreciated. Thanks.
Well you seem to be headed in the right direction but it really depends upon the data you want to search on. For example. MySQL allows you to narrow the dataset you return or evaluate on a date field by using one of the standard date references (year, month, or day) like so:
SELECT YEAR(thedate) as year
FROM sometable WHERE YEAR(thedate) < '2010' && YEAR(thedate) > '2000';