求教各位大牛 目前遇到一个sql语句不会处理 是这样的:mysql里有个表叫test,里有一个time字段类型是char,格式是这样的:9月13日 20:30
8月11日 07:30
9月7日 14:00
12月11日 13:00
10月5日 05:18
现在我已经取得了前面的月日,比方说现在取得了$today="9月13日"
现在想根据$today这个变量,来查询出表里time字段 前面的月日 大于等于$today
select * from test where time------------这个条件不会写跪求各位好心人帮忙看下怎么实现这个查询?跪谢各位大牛 祝好人一生平安 在线等

解决方案 »

  1.   

    补充一下啊:9月13日 20:30
    8月11日 07:30
    9月7日 14:00
    12月11日 13:00
    10月5日 05:18这是我列举的test表里time字段的五条数据 用来说明time字段都是些说明格式的数据 char类型
      

  2.   

    select * from test where STR_TO_DATE(concat('2013年',time), '%Y年%m月%d日 %H:%i')>$today
    把年加上,再转化为日期再比较,如果$today类型也是字符串,参照前面的 STR_TO_DATE也处理下
      

  3.   

    两条语句,应该可以,不过好蛋疼
    select * from test where strSplit(time, '月',1)>strSplit("9月3日", '月',1);
    select * from test where strSplit(time, '月',1)=strSplit("9月3日", '月',1) and strsplit((strSplit(time,"月",2),"日",1)>strsplit((strSplit("9月3日","月",2),"日",1);
      

  4.   

    在SQL中处理这类问题非常麻烦而且效率不高;有下面建议:
    1. 修改字段类型
    2. 若字段类型不能修改,可以考虑在编程语言上转换如: PHP有 strtotime 之类函数