2015-03-13 88 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年3月25日22时15分零零秒

  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

可以通过使用case语句 – 2015-03-13 11:19:50

+0

请编辑您的问题,并提供样本数据和期望的结果来完成。 – 2015-03-13 11:22:43

回答

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; 
在MySQL
相关问题