2015-03-13 4 views
1

Мне нужна помощь с запросом MySQL, чтобы проверить текущую дату между двумя заданными датами и использовать условие if. Ниже мое утверждение запроса:Как проверить текущую дату между двумя датами в MySQL?

$selMesQuery="select Subject, Message, PlainMessage, ARActiveTime, ARTimeZone, ARStartTime, AREndTime, ARID, UserId, DispLogo, ContentType from mytable"; 

ARActiveTime будет 0 или 1.

ARStartTime, AREndTime будет в формате даты и времени например: 2015-03-25 22:15:00

  1. Если ARActiveTime является '0', я не нужны значения ARTimeZone, ARStartTime, AREndTime, но мне нужны другие значения.
  2. мне нужны значения ARTimeZone, ARStartTime, AREndTime наряду с другими значениями, только если ARActiveTime является «1» и системное время должно быть между ARStartTime и AREndTime.

Как это сделать с запросами запросов mysql ??

Я могу сделать это, выполнив данный запрос, проверив, является ли ARActiveTime 0 или 1, а затем получает текущую дату, проверку и дат с помощью php-кода. Но можно ли это делать только с операторами mysql?

Может быть, это можно сделать, используя условие IF в запросе? Я не уверен.

Любая помощь была бы принята с благодарностью.

sample data of mysql table: 
_________________________________________________________________________________ 
table header is as per the mysql query given 
__________________________________________________________________________________ 
sub1 | msg1 | pmsg1 | 0 | 0 |0000-00-00 00:00:00|0000-00-00 00:00:00| 1 | 1 | 0 | 2 
_________________________________________________________________________________ 
sub2 | msg2 | pmsg2 | 1 | 3 |2015-03-12 10:00:00|2015-03-25 22:00:00| 2 | 1 | 1 | 1 
_________________________________________________________________________________ 
sub3 | msg3 | pmsg3 | 1 | 2 |2015-03-10 20:00:00|2015-03-15 20:00:00| 3 | 2 | 1 | 2 
_________________________________________________________________________________ 
sub4 | msg4 | pmsg4 | 0 | 0 |0000-00-00 00:00:00|0000-00-00 00:00:00| 4 | 3 | 0 | 3 
_________________________________________________________________________________ 


desired result: 
_________________________________________________________________________________ 
sub1 | msg1 | pmsg1 |             1 | 1 | 0 | 2 
_________________________________________________________________________________ 
sub2 | msg2 | pmsg2 | 1 | 3 |2015-03-12 10:00:00|2015-03-25 22:00:00| 2 | 1 | 1 | 1 
_________________________________________________________________________________ 
sub3 | msg3 | pmsg3 | 1 | 2 |2015-03-10 20:00:00|2015-03-15 20:00:00| 3 | 2 | 1 | 2 
_________________________________________________________________________________ 
sub4 | msg4 | pmsg4 |             4 | 3 | 0 | 3 
_________________________________________________________________________________ 
+0

в MySQL это может быть сделано с помощью регистра заявления –

+0

Пожалуйста, измените ваш вопрос и предоставить образец данные и желаемые результаты. –

ответ

0

попробовать это

SELECT SUBJECT, 
    Message, 
    PlainMessage, 
    ARActiveTime, 
    ARTimeZone, 
    ARStartTime, 
    AREndTime, 
    ARID, 
    UserId, 
    DispLogo, 
    ContentType FROM mytable WHERE ARActiveTime = 1 
UNION ALL 
SELECT SUBJECT, 
    Message, 
    PlainMessage, 
    ARActiveTime, 
    NULL AS ARTimeZone, 
    NULL AS ARStartTime, 
    NULL AS AREndTime, 
    ARID, 
    UserId, 
    DispLogo, 
    ContentType FROM access_mgmt WHERE ARActiveTime = 0; 
Смежные вопросы