select * from zdyjkzbjl where jsbh='330400111' and TO_CHAR( pbrq , 'yyyy-mm-dd')='2023-05-23' and bc ='1' and TO_CHAR( jbsj , 'yyyy-mm-dd hh24:MI')<>'2023-05-23 07:50' and TO_CHAR( jiaobsj , 'yyyy-mm-dd hh24:MI')<>'2023-05-23 19:50' and TO_CHAR( now() , 'yyyy-mm-dd hh24:MI:SS') BETWEEN '2023-05-23 07:50:00' and '2023-05-23 17:00:00'; --一班次 23/07- 23/17 提醒时间 select * from zdyjkzbjl where jsbh='330400111' and TO_CHAR( pbrq , 'yyyy-mm-dd')='2023-05-23' and bc ='2' and TO_CHAR( jbsj , 'yyyy-mm-dd hh24:MI')='2023-05-23 19:50' and TO_CHAR( jiaobsj , 'yyyy-mm-dd hh24:MI')='2023-05-24 01:50' and TO_CHAR( now(), 'yyyy-mm-dd hh24:MI:SS') BETWEEN '2023-05-23 17:00:00' and '2023-05-24 01:30:00'; --二班次 23/17 -24/01 提醒时间 select * from zdyjkzbjl where jsbh='330400111' and TO_CHAR( pbrq , 'yyyy-mm-dd')='2023-05-23' and bc='3' and TO_CHAR( jbsj , 'yyyy-mm-dd hh24:MI')<>'2023-05-24 01:50' and TO_CHAR( jiaobsj , 'yyyy-mm-dd hh24:MI')<>'2023-05-24 07:50' and TO_CHAR( now() , 'yyyy-mm-dd hh24:MI:SS') BETWEEN '2023-05-24 01:30:00' and '2023-05-24 07:50:00'; 如何根据时间来分别调用其中的一个sql ,使用java 和mybatis sql 里面的日期根据当天日期传入 使用mybatis
时间: 2023-11-22 12:05:27 浏览: 76
可以通过 Java 中的 SimpleDateFormat 将当前日期转换为字符串形式,然后将其作为参数传递给 MyBatis 的映射文件中的 SQL 语句。以下是一些示例代码:
```java
// 获取当前日期
Date now = new Date();
// 将日期格式化为字符串形式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = sdf.format(now);
// 调用第一个 SQL 语句
List<Result> results1 = sqlSession.selectList("zdyjkzbjl.selectByTime1", dateStr);
// 调用第二个 SQL 语句
List<Result> results2 = sqlSession.selectList("zdyjkzbjl.selectByTime2", dateStr);
// 调用第三个 SQL 语句
List<Result> results3 = sqlSession.selectList("zdyjkzbjl.selectByTime3", dateStr);
```
在这里,"zdyjkzbjl" 是映射文件中的命名空间,"selectByTime1"、"selectByTime2" 和 "selectByTime3" 分别是三个 SQL 语句的 id,"dateStr" 是当前日期的字符串形式,作为 SQL 语句的参数传递。在映射文件中,对应的 SQL 语句可以这样写:
```sql
<!-- 第一个 SQL 语句 -->
<select id="selectByTime1" resultType="Result">
select *
from zdyjkzbjl
where jsbh=#{jsbh}
and TO_CHAR(pbrq, 'yyyy-mm-dd')=#{dateStr}
and bc='1'
and TO_CHAR(jbsj, 'yyyy-mm-dd hh24:MI')<>'2023-05-23 07:50'
and TO_CHAR(jiaobsj, 'yyyy-mm-dd hh24:MI')<>'2023-05-23 19:50'
and TO_CHAR(now(), 'yyyy-mm-dd hh24:MI:SS') between '2023-05-23 07:50:00' and '2023-05-23 17:00:00'
</select>
<!-- 第二个 SQL 语句 -->
<select id="selectByTime2" resultType="Result">
select *
from zdyjkzbjl
where jsbh=#{jsbh}
and TO_CHAR(pbrq, 'yyyy-mm-dd')=#{dateStr}
and bc='2'
and TO_CHAR(jbsj, 'yyyy-mm-dd hh24:MI')='2023-05-23 19:50'
and TO_CHAR(jiaobsj, 'yyyy-mm-dd hh24:MI')='2023-05-24 01:50'
and TO_CHAR(now(), 'yyyy-mm-dd hh24:MI:SS') between '2023-05-23 17:00:00' and '2023-05-24 01:30:00'
</select>
<!-- 第三个 SQL 语句 -->
<select id="selectByTime3" resultType="Result">
select *
from zdyjkzbjl
where jsbh=#{jsbh}
and TO_CHAR(pbrq, 'yyyy-mm-dd')=#{dateStr}
and bc='3'
and TO_CHAR(jbsj, 'yyyy-mm-dd hh24:MI')<>'2023-05-24 01:50'
and TO_CHAR(jiaobsj, 'yyyy-mm-dd hh24:MI')<>'2023-05-24 07:50'
and TO_CHAR(now(), 'yyyy-mm-dd hh24:MI:SS') between '2023-05-24 01:30:00' and '2023-05-24 07:50:00'
</select>
```
在 SQL 语句中,使用 #{dateStr} 来引用 Java 代码中传递的参数。
阅读全文