- 浏览: 910414 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
wangzhen199009:
good. Thx for your sharing.
REST和认证 HMAC -
jsshizhan:
你的这个SQL有问题的
数据库中如何使用SQL查询连续数字并且统计连续个数 -
maoghj:
dddddddddddddd
mysql 更改my.cnf 慢查询日志 -
zhoutong123a:
人的贪婪无止境,只能控制,不能满足
招人心得 -
xuerThinkVickie:
...
ZeroClipboard支持IE,firefox,Chrome复制到剪贴板
select PERIOD_DIFF(date_format(now(),'%Y%m'),date_format('2010-11-30','%Y%m'))
1. MySQL 为日期增加一个时间间隔:date_add()
set @dt = now(); select date_add(@dt, interval 1 day); -- add 1 day select date_add(@dt, interval 1 hour); -- add 1 hour select date_add(@dt, interval 1 minute); -- ... select date_add(@dt, interval 1 second); select date_add(@dt, interval 1 microsecond); select date_add(@dt, interval 1 week); select date_add(@dt, interval 1 month); select date_add(@dt, interval 1 quarter); select date_add(@dt, interval 1 year); select date_add(@dt, interval -1 day); -- sub 1 day
MySQL adddate(), addtime()函数,可以用 date_add() 来替代。下面是 date_add() 实现 addtime() 功能示例:
mysql> set @dt = '2008-08-09 12:12:33'; mysql> mysql> select date_add(@dt, interval '01:15:30' hour_second); +------------------------------------------------+ | date_add(@dt, interval '01:15:30' hour_second) | +------------------------------------------------+ | 2008-08-09 13:28:03 | +------------------------------------------------+ mysql> select date_add(@dt, interval '1 01:15:30' day_second); +-------------------------------------------------+ | date_add(@dt, interval '1 01:15:30' day_second) | +-------------------------------------------------+ | 2008-08-10 13:28:03 | +-------------------------------------------------+
date_add() 函数,分别为 @dt 增加了“1小时 15分 30秒” 和 “1天 1小时 15分 30秒”。建议:总是使用 date_add() 日期时间函数来替代 adddate(), addtime()。
2. MySQL 为日期减去一个时间间隔:date_sub()
mysql> select date_sub('1998-01-01 00:00:00', interval '1 1:1:1' day_second); +----------------------------------------------------------------+ | date_sub('1998-01-01 00:00:00', interval '1 1:1:1' day_second) | +----------------------------------------------------------------+ | 1997-12-30 22:58:59 | +----------------------------------------------------------------+
MySQL date_sub() 日期时间函数 和 date_add() 用法一致,不再赘述。另外,MySQL 中还有两个函数 subdate(), subtime(),建议,用 date_sub() 来替代。
3. MySQL 另类日期函数:period_add(P,N), period_diff(P1,P2)
函数参数“P” 的格式为“YYYYMM” 或者 “YYMM”,第二个参数“N” 表示增加或减去 N month(月)。
MySQL period_add(P,N):日期加/减去N月。
mysql> select period_add(200808,2), period_add(20080808,-2) +----------------------+-------------------------+ | period_add(200808,2) | period_add(20080808,-2) | +----------------------+-------------------------+ | 200810 | 20080806 | +----------------------+-------------------------+
MySQL period_diff(P1,P2):日期 P1-P2,返回 N 个月。
mysql> select period_diff(200808, 200801); +-----------------------------+ | period_diff(200808, 200801) | +-----------------------------+ | 7 | +-----------------------------+
在 MySQL 中,这两个日期函数,一般情况下很少用到。
4. MySQL 日期、时间相减函数:datediff(date1,date2), timediff(time1,time2)
MySQL datediff(date1,date2):两个日期相减 date1 - date2,返回天数。
select datediff('2008-08-08', '2008-08-01'); -- 7 select datediff('2008-08-01', '2008-08-08'); -- -7
MySQL timediff(time1,time2):两个日期相减 time1 - time2,返回 time 差值。
select timediff('2008-08-08 08:08:08', '2008-08-08 00:00:00'); -- 08:08:08 select timediff('08:08:08', '00:00:00'); -- 08:08:08
注意:timediff(time1,time2) 函数的两个参数类型必须相同。
MySQL查询的方式很多,下面为您介绍的MySQL查询实现的是查询本周、上周、本月、上个月份的数据,如果您对MySQL查询方面感兴趣的话,不妨一看。
查询当前这周的数据
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now());
查询上周的数据
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now())-1;
查询当前月份的数据
select name,submittime from enterprise where date_format(submittime,'%Y-%m')=date_format(now(),'%Y-%m')
查询距离当前现在6个月的数据
select name,submittime from enterprise where submittime between date_sub(now(),interval 6 month) and now();
查询上个月的数据
select name,submittime from enterprise where date_format(submittime,'%Y-%m')=date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),'%Y-%m')
select * from `user` where DATE_FORMAT(pudate,'%Y%m') = DATE_FORMAT(CURDATE(),'%Y%m') ; select * from user where WEEKOFYEAR(FROM_UNIXTIME(pudate,'%y-%m-%d')) = WEEKOFYEAR(now()) select * from user where MONTH(FROM_UNIXTIME(pudate,'%y-%m-%d')) = MONTH(now()) select * from [user] where YEAR(FROM_UNIXTIME(pudate,'%y-%m-%d')) = YEAR(now()) and MONTH(FROM_UNIXTIME(pudate,'%y-%m-%d')) = MONTH(now()) select * from [user] where pudate between 上月最后一天 and 下月第一天
发表评论
-
Jemalloc优化MySQL和Nginx
2017-05-09 14:15 737原文地址:https://my.oschina.net/lj2 ... -
安装mysql出现的异常
2014-11-11 17:39 526报 This probably means that your ... -
土豆土豆土豆
2014-05-28 15:39 703blog.csdn.net/ylqmf/article/cat ... -
淘宝的数据拆分历程
2013-08-16 11:07 757摘自: http://blog.csdn.net/im ... -
MySQL的log-bin的日志功能
2013-07-25 18:35 887摘自:blog.163.com/lgh_2002/blog/s ... -
由浅入深理解索引的实现[InnoDB]
2013-07-22 18:58 813摘自 www.mysqlops.com/2011/11/24/ ... -
SQL去除重复删除重复数据
2013-07-19 17:54 733摘自: http://ourmysql.com/archive ... -
How to install innotop on centos
2013-05-23 12:57 1160转自 http://blog.chinaunix.net/ui ... -
使用SHOW PROCESSLIST 分析数据库状态
2013-05-18 23:45 975引用mysql -e 'SHOW PROCEESLIST\G' ... -
单条查询问题还是服务器问题
2013-05-18 18:31 734使用SHOW GLOBAL STATUS 以较高的频率比如一秒 ... -
mysql分区管理 - hash分区
2013-05-15 13:31 1001blog.csdn.net/tenfyguo/article/ ... -
主从复制详解
2013-05-15 12:38 706引用laoxu.blog.51cto.com/4120547/ ... -
analyze 5-sec-status-2011-03-20
2013-05-13 21:41 665引用#!/bin/sh #this script conver ... -
mysql术语
2013-05-13 18:25 576dev.mysql.com/doc/refman/5.6/en ... -
MYSQL 三类表信息缓存
2013-05-13 18:23 1172引用MySQL中,有三类表信息缓存,分别为:1. Table ... -
乐观锁和悲观锁
2013-05-13 14:08 1005引用数据库中的加锁协议,分为乐观/悲观两类:乐观加锁,操作记录 ... -
mysql 数据收集shell脚本
2013-05-09 22:07 1140#!/bin/sh INTERVAL=5 PREFIX=$IN ... -
mysql视频
2013-05-07 14:30 825dl.vmall.com/c0qljbm4wi -
海量数据处理
2013-05-06 14:21 772http://blog.csdn.net/kesaihao86 ... -
mysqlhotcopy的使用和安装方法
2013-04-28 16:41 512使用mysqlhotcopy之前需要安装perl-DBI和DB ...
相关推荐
如果需要计算其他单位(如小时、分钟或秒)的时间差,可以使用`TIMESTAMPDIFF()`函数,它接受一个单位参数(如SECOND, MINUTE, HOUR, DAY等)和两个日期/时间表达式: ```sql SELECT TIMESTAMPDIFF(HOUR, '2012-...
本文将详细介绍几种常见的MySQL时间模糊查询方法,并通过实例加以说明。 #### 二、模糊查询的基本概念 模糊查询是指不精确地匹配查询条件的一种查询方式。在MySQL中,模糊查询主要通过`LIKE`关键字实现。例如,...
在计算时间差之前,应先判断是否为NULL,可使用 `IFNULL()` 或 `COALESCE()` 函数将NULL转换为一个默认值。 6. **实际应用示例**: 假设我们有一个名为`orders`的表,其中包含`order_date`和`delivery_date`两个...
查询上个月的数据同样可以通过比较月份的方式来实现,只需要将当前时间减去一个月的时间差: ```sql SELECT name, submittime FROM enterprise WHERE date_format(submittime, '%Y-%m') = date_format(DATE_SUB...
MySql计算两个日期的时间差函数TIMESTAMPDIFF用法: 语法: TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2) 说明: 返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。其结果的...
MySQL时间日期相关函数是数据库操作中的重要组成部分,用于处理与日期和时间相关的数据。在MySQL中,这些函数提供了丰富的功能,包括获取当前日期和时间、格式化日期、时间间隔计算以及进行日期时间的比较等。以下是...
在PHP和MySQL中计算时间差是一项常见的任务,尤其在处理日期相关的业务逻辑时。这篇文章将详细介绍如何在两者中实现这一功能。 在PHP中,计算时间差通常涉及到日期和时间的处理函数。`mktime()`是一个非常有用的...
通过上述方法,在php和MySQL环境下都可以方便地计算出两个日期之间的时间差。在实际的应用中,选择哪种方法取决于具体的应用场景和环境设置。在数据库环境中,MySQL和MSSQL分别提供了方便的内置函数来处理日期差的...
### MySQL时间日期格式化知识点详解 #### 一、概述 MySQL作为一款广泛使用的数据库管理系统,提供了丰富的日期和时间处理函数,使得开发人员能够方便地进行日期时间的数据操作。本文将重点介绍MySQL中与时间日期...
在这个“mysql的日期和时间函数”教程中,我们将深入探讨这些关键功能。 1. **日期和时间类型** MySQL支持多种日期和时间数据类型,如DATE(仅日期)、TIME(仅时间)、DATETIME(日期和时间)和TIMESTAMP(时间戳...
- **计算两个日期间的月份数差**: - `SELECT PERIOD_DIFF(200302, 199802);` #### 示例查询 - **计算年龄**: - `SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW()) - TO_DAYS(birthday)), '%Y') + 0 AS age FROM ...
- 功能:返回`time1`和`time2`之间的时间差。 - 示例:`TIMEDIFF('2018-01-01 10:00:00', '2018-01-01 09:00:00')`将返回`'01:00:00'`。 24. **TIME_TO_SEC(time)** - 功能:将时间转换为秒数。 - 示例:`TIME_...
- MOD():返回两个数相除的余数。 2. 字符串函数: - CONCAT():连接两个或多个字符串。 - SUBSTRING():从字符串中提取子串。 - LENGTH():返回字符串的长度。 - REPLACE():在字符串中替换特定字符或子串。 ...
这里的`NOW()`函数返回当前的日期和时间,而`TO_DAYS()`则将这个日期时间转换为天数。通过计算两个日期之间的天数差,我们就能很容易地判断出某个日期是否在过去30天内。 #### 2. `DAYOFWEEK()`与`WEEKDAY()`函数 ...
- **计算两个日期之间的时间差** ```sql SELECT TIMEDIFF('2000-01-31 23:59:59', '2000-01-01 00:00:00'); -- 返回 "743:59:59" SELECT TIMEDIFF('2000-01-01 00:00:00', '2000-01-31 23:59:59'); -- 返回 "-...
- **DATEDIFF(date1, date2)**: 计算两个日期之间的天数差。 ```sql SELECT DATEDIFF(NOW(), '2008-08-08'); ``` - **DATE_ADD(date, INTERVAL expr type)**: 向指定日期添加指定的时间间隔。 ```sql SELECT ...
15. `PERIOD_ADD(P, N)`:在阶段P(格式为YYMM或YYYYMM)上增加N个月,并返回更新后的阶段值。 16. `PERIOD_DIFF(P1, P2)`:计算阶段P1和P2之间的月数差,P1和P2应以YYMM或YYYYMM格式给出。 17. `DATE_ADD(date, ...
这些函数允许开发者执行各种操作,包括提取日期部分、计算时间差、格式化日期和时间、以及进行日期时间的比较和转换。以下是对MySQL时间函数的详细解释: 1. **日期和时间类型**:MySQL支持多种日期和时间类型,如...