XML动态sql查询当前时间之前的信息报错

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Tair(兼容Redis),内存型 2GB
简介: XML动态sql查询当前时间之前的信息报错

  image.gif 编辑

image.gif 编辑

如图,sql语句在数据库里可以正常运行但是再XML文件不可以正常运行,报错。

原因:在XML中小于号"<"是会被默认认定成文一个标签的开始,所以用小于号就会报错。

解决办法:

1.把表达式反过来改成大于号

2.用<![CDATA[ ]]>包起来,就不会被认定成为标签

  <![CDATA[

         AND (stt.class_date + stt.class_start_time::interval < CURRENT_TIMESTAMP

        OR (stt.class_date < CURRENT_DATE AND stt.class_start_time = '00:00:00'::time))

       ]]>

在这里我就展示一下用<![CDATA[ ]]>包起来的写法

       SELECT

           stt.id,stt.class_date,stt.class_start_time,stt.class_end_time,

           (SELECT COUNT(*) FROM study_time_table_study_student sttss2 WHERE sttss2.study_time_table_id = stt.id AND sttss2.used_status = 1) AS actual_num,

--         stt.actual_num,

           htm.teacher_name,htm.id as teacher_name_id,

           tcm.class_name,tcm.class_type,tcoum.course_name,tcoum.id as course_name_id,stt.study_course_id,

           sttss.study_student_id as student_id,ss.sts_student_name,ss.sts_phone

       FROM study_time_table stt

                JOIN

            teach_class_manage tcm ON tcm.id = stt.study_class_id

                JOIN

            teach_course_manage tcoum ON tcoum.id = stt.study_course_id

                JOIN

            hr_teacher_manage htm ON htm.id = stt.hr_teacher_id

                LEFT JOIN

            study_time_table_study_student sttss ON stt.id = sttss.study_time_table_id

                JOIN

            study_student ss ON ss.id  = sttss.study_student_id

       where 1=1 AND stt.deleted = 0

         AND sttss.used_status = 0

       <![CDATA[

         AND (stt.class_date + stt.class_start_time::interval < CURRENT_TIMESTAMP

        OR (stt.class_date < CURRENT_DATE AND stt.class_start_time = '00:00:00'::time))

       ]]>

 

image.gif 编辑


目录
相关文章
|
2月前
|
SQL 关系型数据库 MySQL
这样的SQL执行为什么不会报错?optimizer_trace深度历险
【10月更文挑战第12天】本文探讨了一条看似错误但实际上能成功执行的SQL语句,通过开启MySQL的优化器追踪功能,详细分析了SQL的执行过程,揭示了子查询被优化器解析为连接操作的原因,最终解释了为何该SQL不会报错。文章不仅增进了对SQL优化机制的理解,也展示了如何利用优化器追踪解决实际问题。
|
3月前
|
SQL 数据库
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
SQL Server附加数据库出现错误823,附加数据库失败。数据库没有备份,无法通过备份恢复数据库。 SQL Server数据库出现823错误的可能原因有:数据库物理页面损坏、数据库物理页面校验值损坏导致无法识别该页面、断电或者文件系统问题导致页面丢失。
115 12
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
|
3月前
|
SQL 数据库
SQL解析相关报错
SQL解析相关报错
49 5
|
1月前
|
SQL Java
使用java在未知表字段情况下通过sql查询信息
使用java在未知表字段情况下通过sql查询信息
38 8
|
1月前
|
SQL 监控 关系型数据库
SQL语句当前及历史信息查询-performance schema的使用
本文介绍了如何使用MySQL的Performance Schema来获取SQL语句的当前和历史执行信息。Performance Schema默认在MySQL 8.0中启用,可以通过查询相关表来获取详细的SQL执行信息,包括当前执行的SQL、历史执行记录和统计汇总信息,从而快速定位和解决性能瓶颈。
|
2月前
|
SQL 关系型数据库 MySQL
|
3月前
|
SQL Java
使用java在未知表字段情况下通过sql查询信息
使用java在未知表字段情况下通过sql查询信息
41 1
|
3月前
|
关系型数据库 MySQL Nacos
nacos启动报错 load derby-schema.sql error
这篇文章描述了作者在使用Nacos时遇到的启动错误,错误提示为加载derby-schema.sql失败,作者通过将数据库从Derby更换为MySQL解决了问题。
nacos启动报错 load derby-schema.sql error
|
3月前
|
关系型数据库 MySQL Java
flywa报错java.sql.SQLSyntaxErrorException: Unknown database ‘flyway‘
flywa报错java.sql.SQLSyntaxErrorException: Unknown database ‘flyway‘
43 1
|
3月前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
71 1