MySQL关于时间的一些查询,查询今天,昨天......

?

##查询最近的一条信息

SELECT column_name(s) FROM table_name WHERE column_name = pattern ORDER BY create_time DESC LIMIT 1;

在某些情况下,如果明知道查询结果只有一个,SQL语句中使用LIMIT 1 会提高查询效率,避免全表扫描。

##查询今天

SELECT column_name(s) FROM table_name WHERE DATE_FORMAT( create_time,‘%Y-%m-%d‘) = DATE_FORMAT(NOW(), ‘%Y-%m-%d‘);

DATE_FORMAT()函数用于以不同的格式显示日期/时间数据

DATE_FORMAT(date,format)

date参数是合法的日期。format规定日期/时间的输出格式

NOW()函数返回当前的日期和时间

?

SELECT column_name(s) FROM table_name WHERE TO_DAYS(create_time) =TO_DAYS(NOW());

SELECT colum_name(s) FROM table_name WHERE DATE(create_time) =DATE(CURDATE());

DATE()提取日期或日期/时间表达式的日期部分

?

?

##查询昨天

SELECT column_name(s) FROM table_name WHERE DATE_FORMAT( create_time,‘%Y-%m-%d‘) = DATE_FORMAT(CURDATE()-1,‘%Y-%m-%d‘);

SELECT column_name(s) FROM table_name WHERE DATE(create_time) =DATE(CURDATE()-1);

##输出格式:2017-04-14

SELECT CURDATE();

##输出格式:2017-04-14 13:44:11

SELECT NOW();

##查询一个星期内的数据

## DATE_SUB(date,INTERVAL expr unit) 从日期减去指定的时间间隔

SELECT column_name(s) FROM table_name WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) <=DATE(create_time) ORDER BY create_time DESC;

##查询一个月内的数据

SELECT column_name(s) FROM table_name WHERE DATE_SUB(CURDATE(),INTERVAL 1 MONTH) <= DATE(create_time) ORDER BY create_time DESC;

##返回date的星期索引(1 = Sunday, 2 = Monday, ... 7 = Saturday)。索引值符合 ODBC 的标准

SELECT DAYOFWEEK(create_time) FROM table_name ORDER BY create_time DESC;

##格式化时间

SELECT DATE_FORMAT(create_time,‘%Y-%m-%d‘) FROM table_name ;

##返回当前时间 输出格式:15:17:51

SELECT CURTIME();

##给日期添加指定的时间间隔  DATE_ADD(date,INTERVAL expr unit)

SELECT column_name(s) FROM table_name WHERE DATE_ADD(create_time,INTERVAL 1 DAY) <= DATE(NOW());

##返回两个日期之间的天数 DATEDIFF(expr1,expr2)

SELECT column_name(s) FROM table_name WHERE DATEDIFF( NOW(),create_time)=0

=0代表查询的是当天,=1 查询的就是昨天……

欢迎关注微信公众号:

?

原文地址:https://www.cnblogs.com/zhaixingzhu/p/12569285.html

时间: 2024-11-06 17:44:22

MySQL关于时间的一些查询,查询今天,昨天......的相关文章

mysql 根据时间查询 格式转换竟然要注意大小写,天坑

时间需要转换格式在查询 查询2018年12月24日以后的记录 SELECT id FROM t_client_info WHERE DATE_FORMAT(visit_datetime,'%Y-%m-%d')>='2018-12-24'; 查询24号之后25号之前的数据 SELECT id FROM t_client_info WHERE DATE_FORMAT(visit_datetime,'%Y-%m-%d')>='2018-12-24' AND DATE_FORMAT(visit_dat

《高性能MySQL》读书笔记--查询性能优化

对于高性能数据库操作,只靠设计最优的库表结构.建立最好的索引是不够的,还需要合理的设计查询.如果查询写得很糟糕,即使库表结构再合理.索引再合适,也无法实现高性能.查询优化.索引优化.库表结构优化需要齐头并进,一个不落. 6.1 为什么查询速度会慢 通常来说,查询的生命周期大致可以按照顺序来看:从客户端>>服务器>>在服务器上进行解析>>生成执行计划>>执行>>返回结果给客户端.其中执行可以认为是整个生命周期中最重要的阶段,这其中包括了大量为了检索

mysql 查询当天、昨天、本周、上周、本月、上月、今年、去年数据

mysql 查询当天数据 mysql查询今天.昨天.7天.近30天.本月.上一月 数据 今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) = 1 近7天 SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名) 查询当

MYSQL 5.7.9 开启慢查询日志

用MYSQL 5.7.9 作为ZABBIX 2.4.7 的监控数据库. 前段时间开启了慢查询日志, 后来发现慢查询日志膨胀到了700M 查看最后100条 大部分都是 0.1 秒的 后来想改, 以前是动态设置的   set global slow_query_log=1; 方式的 . 然后想直接用配置文件/etc/my.cnf  配慢查询 7 [mysqld]      8       9 # Remove leading # and set to the amount of RAM for th

mysql查询今天、昨天、近7天、近30天、本月、上一月的SQL语句

mysql查询今天.昨天.近7天.近30天.本月.上一月的SQL语句 这篇文章主要介绍了mysql查询今天.昨天.近7天.近30天.本月.上一月的SQL语句,一般在一些统计报表中比较常用这个时间段,需要的朋友可以参考下 mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法分析总结: 话说有一文章表article,存储文章的添加文章的时间是add_time字段,该字段为int(5)类型的,现需要查询今天添加的文章总数并且按照时间从大到小排序,则查询语句如下: 代码如下: select

mysql查询今天、昨天、上周(转)

今天  select * from 表名 where to_days(时间字段名) = to_days(now());  昨天  SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1  7天  SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名)  近30天  SELECT * FROM 表名 where DATE_SUB(CU

(七)MySQL数据操作DQL:单表查询

(1)单表查询 1)环境准备 mysql> CREATE TABLE company.employee5( id int primary key AUTO_INCREMENT not null, name varchar(30) not null, sex enum('male','female') default 'male' not null, hire_date date not null, post varchar(50) not null, job_description varcha

mysql use index () 优化查询的例子

USE INDEX在你查询语句中表名的后面,添加 USE INDEX 来提供你希望 MySQ 去参考的索引列表,就可以让 MySQL 不再考虑其他可用的索引.Eg:SELECT * FROM mytable USE INDEX (mod_time, name) ...?IGNORE INDEX如果你只是单纯的想让 MySQL 忽略一个或者多个索引,可以使用 IGNORE INDEX 作为 Hint.Eg:SELECT * FROM mytale IGNORE INDEX (priority) .

MySQL的约束、多表查询、子查询

一.约束之主键约束 约束:约束是添加在列上的,用来约束列的. 1.主键约束(唯一标识):非空.唯一.被引用 当表的某一列被指定为主键后,该类就不能为空,不能有重复值出现 创建表时指定主键的两种方式: CREATE TABLE stu( sid CHAR(6) PRIMARY KEY, sname VARCHAR(20), age INT, sex VARCHEAR(10) ); CREATE TABLE stu( sid CHAR(6) , sname VARCHAR(20), age INT,