开发者社区> 问答> 正文

beetlsql SQL 模板参数日期格式化无效 :报错

sql模版

page
===

* 用一个sql做翻页查询,page将输出 count(1) 或者 u.*

    select #page("o.*")# from order o 
    where 1=1 
    @if(!isEmpty(orderTime)){
      and DATE_FORMAT(o.order_time,'%Y-%m-%d') = #orderTime,"yyyy-MM-dd"#
    @}

参数对象:

/*
* gen by beetlsql 2017-02-08
*/
public class Order extends BaseEntity {

	private static final long serialVersionUID = 1L;

	// ID
	private Integer id;
	// 时间
	private Date orderTime;
    //...set/get
}

mysql 数据库,order_time字段类型为datetime,需求比较年月日,不比较时分秒。

尝试过 

DATE_FORMAT(o.order_time,'%Y-%m-%d') = #orderTime,DateFormat="yyyy-MM-dd"# 也是无效,是不是不支持这种方式。

展开
收起
kun坤 2020-06-20 11:41:49 1525 0
1 条回答
写回答
取消 提交回答
  • 现在临时解决方法,你别用格式化函数,因为还不支持,你可以写个方法,或者用现成的方法,比如

    ${strutil.formatDate(user.orderTime,’yyyy-MM-dd’)}

    ######ok######支持,你说的无效什么意思?可以看看debug输出判断一下######比如 值2017-01-05 #orderTime,DateFormat="yyyy-MM-dd"# 在填充参数的时候填充的是 2017-01-05 00:00:00:0 没有格式化。######DateFormat,没这个格式化函数,应该报错######没有报错######

    debug 日志输出是什么?你说无效,我理解起来比较困难

    ######

    mysql有date_format这个函数,date_format(date,'%Y-%m-%d')

    应该是使用模版出的问题,我没用过beetlsql,自己判断吧

    ######

    引用来自“闲大赋”的评论

    debug 日志输出是什么?你说无效,我理解起来比较困难

    Debug

    ######

    看图应该是格式化函数没有被beetlsql调用而是原样输出了,我先看看这是不是bug先

    ######

    确实忽略了格式化,稍等,明天版本吧,这个功能算是bug,明天修复到2.8.3

    ######

    请使用2.8.3 ,支持了格式化函数

    ######好的######

    引用来自“闲大赋”的评论

    请使用2.8.3 ,支持了格式化函数

    晕,版本又发错了,不支持格式化,你还是先按照我给你的方案来做吧。下个版本支持

     

    2020-06-20 11:42:09
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载