<if test="dto.date!= null and dto.date!= ''">
and to_char(表中时间字段,'yyyy-mm')= #{dto.date}
</if>
说明
- to_char是为了将日期类型转为字符串类型,也可以为字段进行截取
- dto.date是前端传过来的数据,类型是String
- yyyy-mm是要截取后的展示形式
to_char 简介
to_char 可以放入数字,字符,日期。这里只介绍日期
- datetime就是数据表对应的时间字段。可以是Date,TIMESTAMP, TIMESTAMP WITH TIME ZONE, or
TIMESTAMP WITH LOCAL TIME ZONE - fmt就是转换后的格式,默认转换为varchar2类型。如:‘yyyy-mm-dd’、‘yyyy–mm’、‘yyyy-mm-dd hh:mm:ss’
- 该’nlsparam’参数指定了月和日名称和缩写返回的语言。这个论点可以有这样的形式:'NLS_DATE_LANGUAGE = 语言 ’
官网讲解:https://docs.oracle.com/cd/B28359_01/server.111/b28286/functions188.htm#SQLRF06129