如何在MySQL中检查两个给定日期之间的当前日期


How to check current date between two given dates in MySQL?

我需要有关MySQL查询的帮助,以检查两个给定日期之间的当前日期并使用if条件。以下是我的查询语句:

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

ARActiveTime 将为 0 或 1

ARStartTime, AREndTime 将采用日期时间格式 ex: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
_________________________________________________________________________________

试试这个

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;