mysql 获取当前日期前后的时间

简介:
+关注继续查看

select subdate(curdate(),date_format(curdate(),'%w') - 1)//获取当前日期在本周的周一


select subdate(curdate(),date_format(curdate(),'%w') - 7)//获取当前日期在本周的周日


这两句语句是mysql用来取当前日期的周一或周日的一个方法,那么这句如何运作的呢?

%w是以数字的形式来表示周中的天数(0=Sunday,1=Monday,...,6=Saturday),0为周日,6为周六,跟我们一般的认知,一周是从周一开始的并不一样。

date_format是一个日期转换函数

date_format(curdate(),'%w') 表示当前日期到上周周日共有几天的间隔,即当前日期减去上周周日的日期=天数(例:curdate()为2011-01-11,那么上周周日为 2011-01-09,两者相减为2)所以若单独输出这一句:selectdate_format(curdate(),'%w')结果就是2

在mysqlapi里对于subdate函数是这样解释的:


SELECTSUBDATE(NOW(),1)AS'Yesterday',


SUBDATE(NOW(),INTERVAL-1DAY)AS'Tomorrow';


正值为昨天,负值为明天,当前时间的起点,就是当前时间的上周周日

subdate函数就是用当前时间减去2天,得到上周周日的时间为2011-01-09


那么如果运行selectsubdate(curdate(),date_format(curdate(),'%w')-2)这句,就表示用当前时间-(2-2),即-0,得到的结果就是当前日期本身了。

如果把%w换成%d呢


%d是用两位数字来表示月中的天数(00,01,...,31)


直接输出的结果就应该是11,表示当前日期在一个月内是第几天


selectdate_format('2011-01-11','%d')


放到开始的语句里就表示用当前时间减去11,结果为2010-12-31


selectsubdate('2011-01-11',date_format('2011-01-11','%d'))


mysql 数据库中根据当前系统时间,取前后几秒 几分钟 几小时 几天

当前时间

select current_timestamp;

输出:2016-06-16 16:12:52

select now(); 

输出:2016-06-16 16:12:52


取当前时间的前一分钟:

select SUBDATE(now(),interval 60 second);

输出:2016-06-16 16:11:52


取当前时间的下一分钟:
select ADDDATE(now(),interval 60 second);

输出:2016-06-16 16:13:52


通过变化上面的单位。可以取前后  分钟,小时,天的时间

取前一分钟的时间:

select SUBDATE(now(),interval 1 minute);

输出:2016-06-16 16:16:38

取前一小时的时间:

select SUBDATE(now(),interval 1 hour);

输出:2016-06-16 15:17:38

取前一天的时间:

select SUBDATE(now(),interval 1 day);

输出:2016-06-15 16:17:38

###########################

取后一分钟的时间:

select ADDDATE(now(),interval 1 minute);

输出:2016-06-16 16:17:38

取后一小时的时间:

select ADDDATE(now(),interval 1 hour);

输出:2016-06-16 17:17:38

取后一天的时间:

select ADDDATE(now(),interval 1 day);

输出:2016-06-17 16:17:38

本文出自http://www.th7.cn/db/mysql/201606/192064.shtml]


     本文转自yzy121403725 51CTO博客,原文链接:http://blog.51cto.com/lookingdream/1916695,如需转载请自行联系原作者




相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
关系型数据库 MySQL BI
当前日期获取:深入了解MySQL中的CURDATE()函数
在数据库操作中,获取当前日期是常见的需求,这时可以使用MySQL中的CURDATE()函数。本文将深入探讨CURDATE()函数的用法、示例以及在数据库操作中的应用。
51 0
|
9月前
|
SQL 关系型数据库 MySQL
MySQL SQL语句给当前日期加一天和减一天
MySQL SQL语句给当前日期加一天和减一天
|
11月前
|
Java 关系型数据库 MySQL
mybatis -plus插入mysql数据,数据库时间比系统时间差8小时
mybatis -plus插入mysql数据,数据库时间比系统时间差8小时
mybatis -plus插入mysql数据,数据库时间比系统时间差8小时
|
11月前
|
存储 关系型数据库 MySQL
一文速学-玩转MySQL时间运算函数以及时间匹配操作详解+实例代码
一文速学-玩转MySQL时间运算函数以及时间匹配操作详解+实例代码
124 0
一文速学-玩转MySQL时间运算函数以及时间匹配操作详解+实例代码
|
11月前
|
SQL 关系型数据库 MySQL
一文速学-玩转MySQL时间选取各类函数操作详解+实例代码
一文速学-玩转MySQL时间选取各类函数操作详解+实例代码
104 0
一文速学-玩转MySQL时间选取各类函数操作详解+实例代码
|
SQL 关系型数据库 MySQL
软件测试mysql面试题:如何在SQL中显示当前日期?
软件测试mysql面试题:如何在SQL中显示当前日期?
53 0
|
关系型数据库 MySQL 数据库
MySQL时间加减函数DATE_ADD和DATE_SUB
MySQL时间加减函数DATE_ADD和DATE_SUB
172 0
|
SQL 关系型数据库 MySQL
Mybatis mysql插入时间, 时间数据不准确 datetime类型
Mybatis mysql插入时间, 时间数据不准确 datetime类型
312 0
|
关系型数据库 MySQL 数据库
MySQL - 更新时间 & 创建时间
MySQL - 更新时间 & 创建时间
236 0
|
SQL 关系型数据库 MySQL
MYSQL查询近一年 近一月 近一周 今天数据 没有数据返回0 按时间有序返回数据
MYSQL查询近一年 近一月 近一周 今天数据 没有数据返回0 按时间有序返回数据
512 0
MYSQL查询近一年 近一月 近一周 今天数据 没有数据返回0 按时间有序返回数据
推荐文章
更多