关于MySQL数据库如何按时间查询
这里做了几个测试
- select * from simingpai where TIMESTAMP(createTime) >= '2015-9-6';
- select * from simingpai where TIMESTAMP(createTime) >= '2015-9-6 00:00:00';
- select * from simingpai where TIMESTAMP(createTime) >= '2015-9-6 18:15:00';
- select * from simingpai where DATE(createTime) >= '2015-9-6';
- select * from simingpai where DATE(createTime) >= '2015-9-6 00:00:00';
- select * from simingpai where DATE(createTime) >= '2015-9-6 00:00:01';
- select * from simingpai where DATE(createTime) >= '2015-9-6 18:15:00';
这几条语法都没有问题,TIMESTAMP类型支持时分秒,DATE类型第一条和第二条输出结果相同(估计是忽略了后面的时分秒),但是第三条和第四条语句就会报错。应该是不支持时分秒。
- select * from simingpai where TIMESTAMP(createTime) >= 2015-9-6;
- select * from simingpai where TIMESTAMP(createTime) >= 2015-9-6 00:00:00;
- select * from simingpai where TIMESTAMP(createTime) >= 2015-9-6 18:15:00;
- select * from simingpai where Date(createTime) >= 2015-9-6;
- select * from simingpai where DATE(createTime) >= 2015-9-6 00:00:00;
- select * from simingpai where DATE(createTime) >= 2015-9-6 00:00:01;
- select * from simingpai where DATE(createTime) >= 2015-9-6 18:15:00;
这里的SQL语句中TIMESTAMP类型和DATE类型的第一条语句能输出结果,其他的都不正确。这种格式应该不支持时分秒。
按照时间进行查询
查询当天的所有数据
- select * from tg_winner where year(createTime)=year(now()) and month(createTime)=month(now()) and day(createTime)=day(now());
- select * from tg_winner where to_days(createTime) = to_days(now());
- select * from tg_winner where date(createTime) = curdate();
查询某天的所有数据
- select * from tg_winner where DATE(createTime) = '2015-9-6';
- select * from tg_winner where to_days(createTime) = to_days('2015-09-06');
- select * from tg_winner where createTime = date_format(#{createTime},'%Y-%m-%d %H:%i:%s');
#{createTime}为Mybatis的.xml文件中实体类对应的Date类型的字段。即要传入的日期类型的变量
mysql查询 昨天 一周前 一月前 一年前的数据
mysql 昨天 一周前 一月前 一年前的数据 这里主要用到了DATE_SUB,
参考如下
- SELECT * FROM tg_winner
- where createTime>DATE_SUB(CURDATE(), INTERVAL 1 DAY)
- where createTime>DATE_SUB(CURDATE(), INTERVAL 1 WEEK)
- where createTime>DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
- where createTime>DATE_SUB(CURDATE(), INTERVAL 1 YEAR
注意:如果数据库中时间以UNIX时间戳的形式存放的话,在时间对比上需要更改为统一格式:
DATE_SUB()返回的是格式化后的时间:2014-05-17
需要用UNIX_TIMESTAMP()转化为UNIX时间戳形式对比:
- where createTime>UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY))
- where createTime>UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 WEEK))
where createTime>UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 MONTH))
where createTime>UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 YEAR))
createTime为数据库的时间字段
关于MySQL数据库如何按时间查询的更多相关文章
- Java对MySQL数据库进行连接、查询和修改(转)
Java对MySQL数据库进行连接.查询和修改 0. 一般过程: (1) 调用Class.forName()方法加载驱动程序. (2) 调用DriverManager对象的getConnection( ...
- MySQL数据库语法-多表查询练习一
MySQL数据库语法-多表查询练习一 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客主要介绍的多表查询的外键约束,以及如何使用外链接和内连接查询数据信息. 一.数据表和测试 ...
- MySQL数据库之单表查询中关键字的执行顺序
目录 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 2 执行顺序 3 关键字使用语法 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 select distinct from ...
- MySQL数据库语法-单表查询练习
MySQL数据库语法-单表查询练习 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客主要是对聚合函数和分组的练习. 一.数据表和测试数据准备 /* @author :yinz ...
- mysql数据库优化[千万级查询]
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
- MySql数据库列表数据分页查询、全文检索API零代码实现
数据条件查询和分页 前面文档主要介绍了元数据配置,包括表单定义和表关系管理,以及表单数据的录入,本文主要介绍数据查询和分页在crudapi中的实现. 概要 数据查询API 数据查询主要是指按照输入条件 ...
- python中的MySQL数据库操作 连接 插入 查询 更新 操作
MySQL数据库 就数据库而言,连接之后就要对其操作.但是,目前那个名字叫做qiwsirtest的数据仅仅是空架子,没有什么可操作的,要操作它,就必须在里面建立“表”,什么是数据库的表呢?下面摘抄自维 ...
- mysql数据库封装和 分页查询
1 之前我们学到了php连接mysql数据库的增删改查,中间要多次调用数据库, 而且以后用到的表比较多,上传中如果需要改数据的话会非常麻烦,但是如果 我们把数据库封装,到时就可以很轻松的把改掉一些数据 ...
- mysql数据库truncate表时间长处理
[环境介绍] 系统环境:Linux + mysql 5.7.18 + 主从复制架构 [背景描述] 客户反映用在mysql数据库上truncate一个innode引擎的list分区100G左右表时,耗时 ...
随机推荐
- ubuntu sublime-text package control
1.ubuntu 环境下sublime-text的 package control一直配置失败 因为我下的是sublime-text3,而网上一般都是sublime-text2的教程. 2.subli ...
- kernel32.dll出错解决方案
kernel32.dll 一.什么是kernel32内核文件 kernel32.dll是Windows 9x/Me中非常重要的32位动态链接库文件,属于内核级文件.它控制着系统的内存管理.数据的输入输 ...
- YeoMan 与Angularjs
链接地址: Yeoman:强大的web构建工具 http://hao.jobbole.com/yeoman/ Yeoman官方教程:用Yeoman和AngularJS做Web应用 http://blo ...
- filesort是什么意思?
我们碰到有order by 或者group by,或者distinct语句的时候,如果查看执行计划,通常会看到using filesort的字眼,那么这个filesort是不是真是文件排序呢?其实不然 ...
- Xcode 项目配置学习
Xcode有四种build for 分别是: build for Running build for Testing build for Profiling build for Archiving R ...
- SQL SERVER 2008 中三种分页方法与总结
建立表: CREATE TABLE [TestTable] ( , ) NOT NULL , ) COLLATE Chinese_PRC_CI_AS NULL , ) COLLATE Chinese_ ...
- javaWeb 使用 jsp 和 javaBean 实现计算器功能
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- C# csv 操作类
using System.Data; using System.IO; using System.Text; namespace YanZhiwei.DotNet2.Utilities.Common ...
- 在使用Myeclipse时,用Tomcat添加部署项目的时候报错,或启动tomcat报错
the selected server is enabled,but is not configured properly.deployment to it will not be permitted ...
- PHP array_column() 函数
定义和用法 array_column() 返回输入数组中某个单一列的值. array_column(array,column_key,index_key); 参数 描述 array 必需.规定要使用的 ...