2012-08-06 122 views
0

我有一个表像MySQL过滤数据..由当前日期

| id | name    | meetingID | meeting_type | status | recurring_time | attendee_passwd | moderator_passwd | date_created  | timezone | meeting_datetime | reminder | duration | created_by_id | sms_no | conferenceID | meeting_logout_url | max_participants | participants_id | 
    +----+------------------+-----------+--------------+--------+----------------+-----------------+------------------+---------------------+-----------+---------------------+----------+----------+---------------+--------+--------------+--------------------+------------------+-----------------+ 
| 7 | 6august   | REG_524 |    | NULL |    | 90200   | 18614   | 0000-00-00 00:00:00 | GMT 5.45 | 2012-08-06 03:00:00 |  0 | 60  |    1 | 12356 |   NULL | http://log.com  |    20 |   NULL | 

我想这样对我使用下面的查询按当前日期来过滤表

SELECT * from demo_meeting WHERE created_by_id IN(SELECT id FROM demo_user WHERE user_name = ' Sang') and meeting_datetime=curdate(); 

但我得到空集而不是获得结果。

请告诉我,我在做什么错在这里

+0

即使我正在从demo_meeting获取select *的空集WHERE meeting_datetime = DATE_FORMAT(CURDATE(),'%​​YY%MM%DD%HH%MM%SS');这一个也 – user1481793 2012-08-06 12:13:41

+0

空集意味着QUERY是正确的,但条件是错误的 – Nagri 2012-08-06 12:17:55

+0

谢谢你hussainNagri – user1481793 2012-08-06 12:21:33

回答

3

您比较日期的日期时间。

试试您铸造日期时间为日期,就像这样:

SELECT * from demo_meeting WHERE created_by_id IN (SELECT id FROM demo_user WHERE user_name = ' Sang') AND DATE(meeting_datetime) = curdate(); 
+0

空集(0.01秒) – user1481793 2012-08-06 12:16:16

+0

谢谢家伙实际上这两个答案是正确的我犯了错误somwher其他 – user1481793 2012-08-06 12:18:06

1
SELECT * from demo_meeting WHERE created_by_id IN(SELECT id FROM demo_user WHERE user_name = ' Sang') and DATE_FORMAT(meeting_datetime, '%Y-%m-%d')=curdate(); 
0

尝试使用DATE()功能来格式化你的约会。顺便说一句,表的接合是高效得多SubQuery

SELECT a.* 
FROM demo_meeting a 
      INNER JOIN demo_user b 
       ON a.created_by_id = b.ID 
WHERE b.user_name = 'Sang' AND 
     DATE(a.meeting_datetime) = DATE(curdate()) 
0

您比较与由具有数据类型日期时间/时间戳字段meeting_datetime CURDATE();你真正需要做的就是比较像date(meeting_datetime)和curdate()。

查询将是: SELECT * FROM demo_meeting WHERE created_by_id IN(SELECT ID FROM demo_user其中user = '生')和date(meeting_datetime)=curdate();

希望它会帮助你。