ibatis中搜索条件是时间的sql语句总结

简介: 代码如下。
1、ibatis根据时间查询
SELECT
  字段    
FROM
WHERE 1=1
<dynamic>
   <isNotEmpty property="keyWord" prepend="and">
   (p1.problem_code like concat('%',#keyWord#,'%') or p1.problem_title like concat('%',#keyWord#,'%'))
  </isNotEmpty>       
  <isNotEmpty prepend="and" property="askTimeMin"> 
  <![CDATA[DATE_FORMAT(ask_time, '%Y-%m-%d') >= ]]>DATE_FORMAT(#askTimeMin#, '%Y-%m-%d') 
  </isNotEmpty> 
  <isNotEmpty prepend="and" property="askTimeMax"> 
  <![CDATA[DATE_FORMAT(ask_time, '%Y-%m-%d') <= ]]>DATE_FORMAT(#askTimeMax#, '%Y-%m-%d') 
  </isNotEmpty>
  </dynamic>
order by ask_time desc limit #startRow#,#pageSize#
</select>
2、查询时间段
2.1、查询分钟相差半小时:
SELECT
  *, TIMESTAMPDIFF(MINUTE, createtime, NOW())
FROM
  test
WHERE
  TIMESTAMPDIFF(MINUTE, createtime, NOW()) > 30
TIMESTAMPDIFF(MINUTE, createtime, NOW()),用now()-createtime的时间相差数为分钟相差数。
2.2、<!-查相差的天数->
SELECT
  *, TIMESTAMPDIFF(DAY, createtime, NOW())
FROM
  test
WHERE
  TIMESTAMPDIFF(DAY, createtime, NOW()) > 0.1
2.3、今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0
2.4、昨天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=1
2.5、7天内的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())<=7
2.6、30天内的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())<=30
2.7、本月的所有数据:select * from 表名 where DateDiff(mm,datetime类型字段,getdate())=0
2.8、本年的所有数据:select * from 表名 where DateDiff(yy,datetime类型字段,getdate())=0
3、查询时间
3.1、查询今天是今年的第几天: select datepart(dayofyear,getDate())
3.2查询今天是本月的第几天:
  1. select datepart(dd, getDate()) 
  2.select day(getDate())
3.3查询本周的星期一日期是多少 (注意:指定日期不能是周日,如果是周日会计算到下周一去。所以如果是周日要减一天)
 SELECT DATEADD(wk,DATEDIFF(wk,0,getdate()),0)
3.4、查询昨天日期:select convert(char,dateadd(DD,-1,getdate()),111)  //111是样式号,(100-114) 
3.5、查询本月第一天日期:Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) as firstday
3.6查询本月最后一天日期:Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) as lastday      //修改-3的值会有相应的变化
3.7本月有多少天:
select datepart(dd,dateadd(dd,-1,dateadd(mm,1,cast((cast(year(getdate()) as varchar)+'-'+cast(month(getdate()) as varchar)+'-01' ) as datetime ))))
3.8、求两个时间段相差几天:select datediff(day,'2012/8/1','2012/8/20') as daysum
3.9、在指定的日期上±N天:select convert(char,dateadd(dd,1,'2012/8/20'),111) as riqi    //输出2012/8/21
3.10、在指定的日期上±N分钟:select dateadd(mi,-15,getdate())  //查询当前时间15分钟之前的日期
相关文章
|
5月前
|
SQL Oracle 关系型数据库
SQL 通配符:用于模糊搜索和匹配的 SQL 关键技巧
通配符字符用于替代字符串中的一个或多个字符。通配符字符与LIKE运算符一起使用。LIKE运算符用于在WHERE子句中搜索列中的指定模式。
79 0
|
SQL XML Oracle
Mybatis动态SQL语句查询,实现一个参数 可查询多个字段。
Mybatis动态SQL语句查询,实现一个参数 可查询多个字段。
478 0
Mybatis动态SQL语句查询,实现一个参数 可查询多个字段。
|
2月前
|
SQL 数据处理 数据库
SQL正则表达式应用:文本数据处理的强大工具——深入探讨数据验证、模式搜索、字符替换等核心功能及性能优化和兼容性问题
【8月更文挑战第31天】SQL正则表达式是数据库管理和应用开发中处理文本数据的强大工具,支持数据验证、模式搜索和字符替换等功能。本文通过问答形式介绍了其基本概念、使用方法及注意事项,帮助读者掌握这一重要技能,提升文本数据处理效率。尽管功能强大,但在不同数据库系统中可能存在兼容性问题,需谨慎使用以优化性能。
42 0
|
4月前
|
SQL 监控 安全
代码审计-PHP原生开发篇&SQL注入&数据库监控&正则搜索&文件定位&静态分析
代码审计-PHP原生开发篇&SQL注入&数据库监控&正则搜索&文件定位&静态分析
|
4月前
|
SQL Oracle 关系型数据库
mysql和oracle 命令行执行sql文件 数据库执行sql文件 执行sql语句
mysql和oracle 命令行执行sql文件 数据库执行sql文件 执行sql语句
67 0
|
5月前
|
SQL 数据库 开发者
百度搜索:蓝易云【SQL高级之慢查询日志?】
慢查询日志是数据库性能优化中一个重要的工具,通过记录执行时间较长的查询语句,帮助识别和解决数据库中的性能问题。它提供了有价值的信息,帮助开发者和管理员优化查询和提升数据库的性能。
65 6
|
SQL 存储 缓存
一文搞懂MySQL中一条SQL语句是如何执行的
一文搞懂MySQL中一条SQL语句是如何执行的
|
5月前
|
SQL 存储
百度搜索:蓝易云【高级SQL语句】
这些是SQL中一些常见的高级语句示例,它们可以帮助你处理更复杂的查询和数据操作需求。请根据具体情况选择适当的语句,并参考相关的SQL文档和教程来进一步了解和学习。
57 0
|
12月前
|
SQL 存储 关系型数据库
MySQL的第一篇文章——了解数据库、简单的SQL语句
MySQL的第一篇文章——了解数据库、简单的SQL语句
|
SQL 程序员 开发工具
【Sql Server】基础之分组查询重复出现多条记录的SQL语句,以及group by和having、min函数运用
基础之分组查询重复出现多条记录的SQL语句,以及group by和having、min函数运用
524 0
【Sql Server】基础之分组查询重复出现多条记录的SQL语句,以及group by和having、min函数运用