开发者

PHP Need help with MYSQL DB and dates

I have two fields in the DB stating the start-time and end-time, and another field that may or may be not set that is called 'date'.

Upon SELECT, I need to know if I am in or out of the time range, and if the date is set if I am in the time range only if the dat开发者_JS百科e is today.

What is the best way to do that in PHP ?

Thanks!


My original answer was not answering your question at all I realised. Hopefully this will.

$query = "SELECT IF(".date('H-m-s')." BETWEEN start-time AND end-time, 
'inRange', 'notInRange') WHERE `date` == CURRENT_DATE OR `date` IS NULL";

If date('H-m-s') from PHP is in the range it will return the string "inRange" otherwise it will return the string "notInRange" and will match it on the records in your db where date is either NULL, or the current date.

You could also make the SQL statement like this:

SELECT IF(TIME(CURRENT_TIMESTAMP) BETWEEN start-time AND end-time, 'inRange',
'notInRange') WHERE myDate == CURRENT_DATE OR myDate IS NULL;


Upon SELECT, I need to know if I am in or out of the time range

SELECT (NOW() BETWEEN date_min AND date_max) is_happening_now
  FROM your_table

is_happening_now contains a boolean containing true if NOW() is between date_min and date_max. Obviously, that would create a separate column that you might not need, you can put the condition in the WHERE clause if necessary.

if the date is set if I am in the time range only if the date is today.

I didn't really understand this part, but you can extract the date from a DATETIME with the DATE function (for example : current_date = DATE(some_date)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜