案例:需要查询出10月10号生日的所有人员的信息
方式一:先查询出所有的数据
DataSet dataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(), "kdec_basicdemo5user", "number, name, datefield", null, null);
再对得到的dataset进行filter过滤
DataSet ddSet = dataSet.filter("Month(datefield)=10 and Day(datefield)=10");
其中相关函数如下:
方式二:可以先添加过滤条件,再查询
QFilter filter = QFilter.of("Month(datefield)=?", "10");
DataSet dataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(), "kdec_basicdemo5user", "number, name, datefield", new Qfilter[]{filter}, null);
--日期函数
函数 | 说明 |
Now() Date() | 返回当前时间 |
Year(date) | 返回date年月日中的年 |
Month(date) | 返回date年月日中的月 |
Day(date) | 返回date年月日中的日 |
Date(year,month,day) | 根据year,month,day返回Date字段 |
TO_DATE(str,format) | 如to_date(“1999-1-1”,”yyyy-MM-dd”),这里的format是Java的DateFormat规范,跟SQL的不兼容 |
TO_CHAR(str,format) | 如to_char(date,”yyyy-MM-dd”),这里的format是Java的DateFormat规范,跟SQL的不兼容 |
Dateadd(datepart,number,date) | DATEADD函数需要3个参数,格式(参考SQL):DATEADD(datepart,number,date),datepart可以为Year,Month,Day,Hour,Minute,Second |
DATEDIF(start_date,end_date,unit) | unit可以为Y,M,D |
--字符串函数
函数 | 说明 |
concat(str1,str2,str3) | 字符串拼接, 等价于str1+str2+str3 |
Contains(left, right) | 返回boolean,left是否包含right |
StartsWith(left, right) | 返回boolean |
endsWith(left, right) | |
Lower(str) | 返回小写字符串 |
Upper(str) | 返回大写字符串 |
Len(str) | 返回字符串长度int |
推荐阅读