mysql查询:有关时间的筛选
###方法一:直接拿字段比较
- (1)以下这两种方式最终效果一样
SELECT bb.borrow_no,bb.create_time FROM borrow bb WHERE bb.create_time>='2018-09-11 00:00:00';
SELECT bb.borrow_no,bb.create_time FROM borrow bb WHERE bb.create_time>='2018-09-11';
borrow_no | create_time |
---|---|
HLW-1000001621658826 | 2018-09-11 13:39:27 |
HLW-1000001587789196 | 2018-09-11 14:36:02 |
HLW-1000000818367793 | 2018-09-11 14:55:53 |
- (2)如何查询某一天(2018-09-10)
正确方法
SELECT bb.borrow_no,bb.create_time FROM borrow bb WHERE bb.create_time>='2018-09-10' and bb.create_time <='2018-09-11';
错误方法:
SELECT bb.borrow_no,bb.create_time FROM borrow bb WHERE bb.create_time='2018-09-10';
直接用时间字段去比较的时候,等号后面需要精确到原始时间的时分秒,2018-09-10 不能代表 2018-09-10 12:22:33
###方法二:查询最近几天的信息
程序中,如果查询最近几天的记录,就需要获取当前日期的时间,然后再动态生成最终结果,如果再把sql的时间都写死,最终就无法达到需求。
(1)函数now():
select NOW();
NOW() |
---|
2018-09-11 17:53:06 |
(2)函数CURRENT_DATE():
select CURRENT_DATE();
NOW() |
---|
2018-09-11 |
(3) 查询当日的记录(以下两种方式结果相同)
SELECT * FROM borrow bb WHERE DATE_FORMAT(bb.create_time, '%Y%m%d')=DATE_FORMAT(CURRENT_DATE(), '%Y%m%d' );SELECT * FROM borrow bb WHERE TO_DAYS(bb.create_time)=TO_DAYS(now());
如上两种方式,都使用的等号=准确的表达了想要查询的时间段
(4)查询昨日的记录
SELECT * FROM borrow bb WHERE TO_DAYS( NOW( ) ) - TO_DAYS( bb.create_time) =1;
(5)查询近7天的数据(以下两种方式结果相同)
SELECT * FROM borrow bb WHERE TO_DAYS( NOW( ) ) - TO_DAYS( bb.create_time) <= 7;
SELECT bb.borrow_no,bb.create_time FROM borrow bb where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(bb.create_time);
(6)查询本月的数据
SELECT * FROM borrow bb WHERE DATE_FORMAT( bb.create_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' );
(7)查询上个月的数据
SELECT * FROM borrow bb WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( bb.create_time, '%Y%m' ) ) =1
有关时间的转换,还可以参考其他博客:
http://www.cnblogs.com/ggjucheng/p/3352280.html
https://blog.csdn.net/Yuan52007298/article/details/81584716
mysql查询:有关时间的筛选相关推荐
- MySql查询系统时间,SQLServer查询系统时间,Oracle查询系统时间
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. MySQL查询系统时间 第一种方法:select current_date: MySQL> s ...
- mysql查询根据时间排序
表数据: mysql查询根据时间排序,如果有相同时间则只查询出来一个 所以需要再判断,如果时间相同,则根据id进行降序排序
- mysql查询特定时间数据视频_mysql查询特定时间段内的数据
参照文章(mysql查询时间段内数据)进行了操作. 先来建表语句: [sql] view plaincopySETFOREIGN_KEY_CHECKS=0;-- ------------------- ...
- 《MySQL——查询长时间不返回的三种原因与查询慢的原因》
目录 查询长时间不返回 等MDL锁 等flush 等行锁 查询慢 构造一张表,表有两个字段id和c,再里面插入了10万行记录 create table 't' ('id' int(11) not nu ...
- mysql查询特定时间数据视频_MySQL如何查询指定时间数据
mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法分析总结: 话说有一文章表article,存储文章的添加文章的时间是add_time字段,该字段为int(5)类型的,现需要查询今天添 ...
- mysql查询当前时间的前后几天时间
1.查询当前时间3天前的时间点 select date_sub(now() ,interval 3 day) 2.查询当前时间的时间3天之后的时间点 select data_sub(now(),int ...
- Mysql 查询当前时间24小时内的数据
记录一下mysql查询24小时内的sql语句 where time >=(NOW() - interval 24 hour)
- mysql查询前段时间_没想到!我在简历上写了“精通MySQL”,阿里面试官跟我死磕后就给我发了高薪offer...
事情是这样的 前段时间面试了阿里,大家也都清楚,如果你在简历上面写着你精通XX技术,那面试官就会跟你死磕到底. 我就是在自己的简历上写了精通MySQL,然后就开启了和阿里面试官的死磕之路,结果就是拿到 ...
- mysql 查询 及时间格式化
列子:当前用户的排名 SELECT u.amount,u.rowNo,g.nickName,g.avatarUrl FROM ( SELECT amount,uid,(@rowNum :=@rowN ...
- mysql查询当前时间和用户_MySQL学习笔记(3) - 查询服务器版本,当前时间,当前用户...
IIC驱动移植在linux3.14.78上的实现和在linux2.6.29上实现对比(deep dive) 首先说明下为什么写这篇文章,网上有许多博客也是介绍I2C驱动在linux上移植的实现,但是笔 ...
最新文章
- 吴裕雄 10-MySQL插入数据
- 设置Windows7各种睡眠方式
- 好看的linux操作系统,Deepin 20 - 外媒称它是最漂亮的Linux操作系统
- spring boot 开发 提交form表单出错
- C++string中find_first_not_of()函数和find_last_not_of()函数
- 基于matlab边缘提取的几种方法的比较
- 匹配除中文和空格意外的正则写法
- Prompt learning入门
- C++ 默认构造函数的构建
- javascript练习案例--消失的星星
- paip.Log4j配置不起作用的解决
- 科研绘图必备软件简介
- C语言变量相关试题,C语言模拟试题
- 自然辩证法小总结思维导图
- 什么是网站服务器 域名 备案号,什么是网站服务器 域名 备案
- linux篇-图解cacti监控安装
- Visio安装失败 无法打开注册表项 解决方案
- android m是什么版本号,Android m是什么版本
- 【畅购商城】购物车模块之添加购物车
- can总线不加末端电阻_RS485总线专题讲解,从原理入手!
热门文章
- 我的世界1.9的java_我的世界1.9光影整合包
- 计算机系统报名可以win10吗,怎么看自己的电脑适不适合装win10_如何检测电脑是否可以升级安装win10系统...
- Git关联本地项目到git上
- 潜流式人工湿地计算_人工湿地计算书
- Redis有序集合(sorted set)使用
- Web开发人员的10个数据库优化最佳实践
- ue4蓝图碰撞检测的类型_[UE4]武器碰撞
- Android开发之USB数据通信
- 小程序新手入门逆向案例来伊某x-co-sign
- 教你如何选购一款适合自己的数码相机