NutzCN Logo
问答 mysql中 time格式的字段,如何在Cnd中编写查询语句
发布于 88天前 作者 qq_2df9dd31 216 次浏览 复制 上一个帖子 下一个帖子
标签:

mysql中 time格式的字段,如何在Cnd中编写查询语句,用的 > < 查询不出来

18 回复

传date对象

AND d.normal_start_time >= Thu Jan 01 08 : 04 : 04 CST 1970

转换成mysql查询语句是这样, 还是不行

String 方式

 if(Strings.isNotBlank(taskPatrolVO.getNormalStartTime())){
                str.append(" and d.normal_start_time >= '"+taskPatrolVO.getNormalStartTime()+"'");
            }

转Date格式也不行
这是用字符串拼接sql语句的方式

 public static final String DATE_PATTERN = "yyyy-MM-dd";

    public static String dateFormat(Date date, String pattern) throws ParseException{
        if(StringUtils.isEmpty(pattern)){
            pattern = DateUtils.DATE_PATTERN;
        }
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
        return sdf.format(date);
    }

String cdate="";
        try {
            cdate=DateUtils.dateFormat(new Date(),"");
        } catch (ParseException e) {
            e.printStackTrace();
        }

SqlExpressionGroup e1 = Cnd.exps("starday", "<=", cdate).and("endday", ">=", cdate);
            SqlExpressionGroup e2 = Cnd.exps("ifnull(starday,'')", "=", "").and("ifnull(endday,'')", "=", "");
            SqlExpressionGroup e3= Cnd.exps(e1).or(e2);
            Condition c = Cnd.where(e3).and("gamepkg","=",pkg);

@menglinxi 格式为hh:mm:ss 不是yyyy-MM-dd

只限定时间, 不限定日期的意思?

你期望得到的SQL是怎样的?

就是 类型为time的字段 格式为hh:mm:ss, 能根据条件查询 可以吗

还有一个是 有没有这个功能 就是查询的时候的时候 自定义新增查询字段
实现如下效果,

M()->table($subQuery . ' a')->field('user_id, realname, mobile, count(*) as count')->group('user_id')->order('count desc')->select()

count 有存在对象中,Cnd查询能一次性查询出来吗

用 cnd.where(new Static("直接写条件")) 吧

如果我要实现这样子的sql 结合cnd 我要怎么快速实现

SELECT user_id,mobile,realname FROM v_ticket  WHERE  1=1 AND actual_bmbh IN (1) GROUP BY user_id 

打错了 应该是这样

SELECT user_id,mobile,realname,count(*) count FROM v_ticket  WHERE  1=1 AND actual_bmbh IN (1) GROUP BY user_id  ORDER BY coun desc;

自定义SQL, 很快的

但是 我的代码 前面已经根据规则有一大堆 cnd条件 自定义SQL 能结合cnd吗

我找不到如何结合写的唉 希望大佬指导一下

你没看文档吧, 写个$cnd 就可以传了

添加回复
请先登陆
回到顶部