-1

我有这个数据在桌子上;

STARTDATE   : ENDDATE     : FNAME : LNAME
Apr 1, 2013 : May 31, 2014: John  : Smith
Feb 1, 2013 : Jun 30, 2013: Gane  : Oxford
Jan 1, 2013 : Mar 11, 2013: Lloyd : White

我想查询 STARTDATE 和 ENDDATE 之间的那些 FNAME 和 LNAME。例如,今天是 2013 年 5 月 23 日,我想返回 startdate 和 enddate 之间的所有名称。在上面的例子中;John Smith 和 Gane Oxford 将回归。

SELECT fname, lname FROM table where NOW() BETWEEN startdate AND enddate
4

3 回答 3

4
SELECT fname,lname FROM table_name where DATE_FORMAT(CURRENT_DATE(),'%b %d, %Y') between startdate AND endate;

DATE_FORMAT(CURRENT_DATE(),'%b %d, %Y')--- 将当前日期转换为您提到的数据库日期格式'Apr 1, 2013'

于 2013-05-23T10:11:52.430 回答
1

使用日期格式。下面是mysql日期格式的例子:

SELECT fname, lname FROM table where DATE_FORMAT(NOW(),'%b %d, %Y') BETWEEN DATE_FORMAT(startdate,'%b %d, %Y')  AND DATE_FORMAT(enddate,'%b %d, %Y') 

如果对你有用,试试这个。

于 2013-05-23T10:12:41.640 回答
0

您需要检查当前日期:-

$date =  date(' F j\, Y'); //output :- May 23, 2013

你的查询将是

SELECT fname, lname FROM table where $date BETWEEN startdate AND enddate
于 2013-05-23T10:12:20.173 回答