MySQL时间专题

user_event :用户事件表

create_time :表中存储时间的字段

#获取当月数据
SELECT * FROM user_event WHERE DATE_FORMAT(create_time,‘%Y-%m‘) = DATE_FORMAT(NOW(),‘%Y-%m‘)

#获取3月份数据
SELECT * FROM user_event WHERE DATE_FORMAT(create_time,‘%Y-%m‘) = DATE_FORMAT(‘2016-03-01‘,‘%Y-%m‘)

#获取三月份数据
SELECT * FROM user_event WHERE YEAR(create_time)=‘2016‘ AND MONTH(create_time)=‘3‘

#获取本周数据
SELECT * FROM user_event WHERE YEARWEEK(DATE_FORMAT(create_time,‘%Y-%m-%d‘)) = YEARWEEK(NOW()); 

#查询上周的数据
SELECT * FROM user_event WHERE YEARWEEK(DATE_FORMAT(create_time,‘%Y-%m-%d‘)) = YEARWEEK(NOW())-1; 

#查询距离当前现在6个月的数据
SELECT * FROM user_event WHERE create_time BETWEEN DATE_SUB(NOW(),interval 6 month) and NOW();

#查询上个月的数据
SELECT * FROM user_event WHERE DATE_FORMAT(create_time,‘%Y-%m‘)=DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH),‘%Y-%m‘)

以上语句整理自:http://www.jb51.net/article/32277.htm

#查询今天的信息记录:
SELECT * FROM user_event WHERE TO_DAYS(`create_time`) = TO_DAYS(NOW());

#查询昨天的信息记录:
SELECT * FROM user_event WHERE TO_DAYS(now()) - TO_DAYS(create_time) <= 1;

#查询近7天的信息记录:
SELECT * FROM user_event WHERE DATE_SUB(curdate(), INTERVAL 7 DAY) <= DATE(create_time);

#查询近30天的信息记录:
SELECT * FROM user_event WHERE DATE_SUB(curdate(), INTERVAL 30 DAY) <= DATE(create_time);

#查询上一月的信息记录:
SELECT * FROM user_event WHERE PERIOD_DIFF(DATE_FORMAT(NOW(), ‘%Y%m‘), DATE_FORMAT(create_time, ‘%Y%m‘)) =1; 

以上语句整理自:http://www.oschina.net/code/snippet_583419_22850

时间: 2024-10-16 02:19:39

MySQL时间专题的相关文章

Hibernate @Temporal 注解处理Java与Mysql时间日期类型的映射关系

2017-4-2 在 Java 中使用 java.util.Date 和 java.util.Calendar 表示时间.日期类型.在 Mysql 中使用 YEAR.DATE.TIME.TIMESTAMP.DATETIME 五种数据类型表示时间日期,由此引出了 Java 日期类型跟数据库的日期类型怎么映射的问题.本文总结了使用 Hibernate @Temporal 注解的解决方案. 使用 @Temporal 注解修饰 Java 实体类的数据类型 指定 @Temporal value 属性,其中

mysql时间

MySQL 日期类型:日期格式.所占存储空间.日期范围 比较. 日期类型        存储空间       日期格式                 日期范围 ------------ ---------   --------------------- ----------------------------------------- datetime       8 bytes   YYYY-MM-DD HH:MM:SS   1000-01-01 00:00:00 ~ 9999-12-31

MySQL:MySQL日期数据类型、MySQL时间类型使用总结

MySQL 日期类型:日期格式.所占存储空间.日期范围 比较. 日期类型        存储空间      日期格式                日期范围------------  ---------  --------------------- -----------------------------------------datetime      8 bytes  YYYY-MM-DD HH:MM:SS  1000-01-01 00:00:00 ~ 9999-12-31 23:59:5

MySQL时间字段究竟使用INT还是DateTime

今天解析DEDECMS时发现deder的MYSQL时间字段,都是用 `senddata` int(10) unsigned NOT NULL DEFAULT '0'; 随后又在网上找到这篇文章,看来如果时间字段有参与运算,用int更好,一来检索时不用在字段上转换运算,直接用于时间比较!二来如下所述效率也更高. 归根结底:用int来代替data类型,更高效. 环境: Windows XP PHP Version 5.2.9 MySQL Server 5.1 第一步.创建一个表date_test(非

Mysql 时间格式默认空串 &#39;0000-00-00 00:00:00&#39; select抛出异常的解决方法

Mysql 时间格式默认插入值为空时,会以'0000-00-00 00:00:00'填充,这时如果select时会抛出SQLExecption如下: java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp 解决方法如下: 方法一:jdbc的url加zeroDateTimeBehavior参数: datasource.url=jdbc:mysql://localh

Python 系统时间与Mysql时间对比

由于自己是负责海外项目,常常会遇到一些问题,最近被系统时间与mysql时间不在一个时区,而坑了自己,一般修改了系统时区之后,MySQL必须重启,不然MySQL时区是不对的,会导致数据全部都是错的~~~,哎,只有坑到了自己,才会想到要去避免这种事情再次出现,所以用python写了一个简单判断时区的脚本,时区不对并邮件发出来,大家参考参考,详情如下: 1.脚本实例 #!/usr/bin/env python # coding=utf8 # auther:kuangl # This is system

mysql时间函数,总是记不住,总是查。

http://www.cnblogs.com/zeroone/archive/2010/05/05/1727659.html UNIX_TIMESTAMP() UNIX_TIMESTAMP(date) 返回一个Unix时间戳(从'1970-01-01 00:00:00'GMT开始的秒数,date默认值为当前时间)mysql> select UNIX_TIMESTAMP(); -> 882226357 mysql> select UNIX_TIMESTAMP('1997-10-04 22:

mysql 时间类型字段的分析

日期类型                存储空间               日期格式                                           日期范围------------      ---------                ---------------------                             -----------------------------------------datetime         8 bytes  

MySQL时间点数据恢复测试步骤--基于Position

MySQL时间点数据恢复测试步骤(基于Position): 1.查看当前的二进制日志的名称及位置 mysql> show master status ; | master-bin.000001 |      107 2.修改数据库的信息并记录相应的修改内容以便于恢复后比对. 例如本例对test.tb1插入了数据: +------+-------+ | id   | name  | +------+-------+ |    1 | tina  | |    2 | jason | +------