这里做了几个测试

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为数据库的时间字段

最新文章

  1. Tomcat笔记
  2. hdu 5898 odd-even number 数位DP
  3. Android 轻量级ORM数据库开源框架ActiveAndroid 源码分析
  4. 解决NTFS分区上的代码在linux上编译后没有权限执行
  5. 393. UTF-8 Validation
  6. 洛谷-拼数-NOIP1998提高组复赛
  7. 联发科Helio P90,MT6779VWB芯片处理器
  8. IO通信模型(三)多路复用IO
  9. ubuntu18.04虚拟机安装docker
  10. bzoj1831 逆序对 (dp+树状数组)
  11. 信息摘要算法之一:MD5算法解析及实现
  12. PC端的鼠标拖拽滑动
  13. hadoop_spark伪分布式实验环境搭建和运行实例详细教程
  14. .net Forms身份验证不能用在应用的分布式部署中吗?
  15. MATLAB 批量处理图片
  16. ubuntu防火墙ufw使用教程
  17. js写法【3】
  18. Log4J & elk 事故总结
  19. 基于ASP.NET WebAPI OWIN实现Self-Host项目实战
  20. PLSQL_统计信息系列03_统计信息的收集

热门文章

  1. 【ruby】快速安装gems的方法
  2. 【转】C#访问权限修饰符
  3. android——单点触控移动,多点触控放大缩小
  4. iOS - 代码查看控制台打印内存使用情况:
  5. ModalDialog.js
  6. 【JQGRID DOCUMENTATION】.学习笔记.4.Navigator
  7. mysql5.5.x升级到mysql5.6.x
  8. [Ogre]纹理设置
  9. hdu 1016 Prime Ring Problem(深度优先搜索)
  10. 多校赛3- Solve this interesting problem 分类: 比赛 2015-07-29 21:01 8人阅读 评论(0) 收藏