1、返回日期的时间函数

  date_add() : 可以为指定日期增加/减少任意一段时间间隔。下面举例将当前日期增加一个月和减少一个月

mysql> select date_add(current_date(), interval 1 month) as add_one_month;
+---------------+
| add_one_month |
+---------------+
| 2016-12-30 |
+---------------+
1 row in set (0.00 sec) mysql> select date_add(current_date(), interval -1 month) as reduce_one_month;
+------------------+
| reduce_one_month |
+------------------+
| 2016-10-30 |
+------------------+
1 row in set (0.00 sec)

  格式:date_add('要修改的时间',interval 数量 时间间隔类型), 下面展示一些常见的时间间隔类型

间隔名称 描述
Second 秒数
Minute 分钟数
Hour 小时数
Day 天数
Month 月份
Year 年份
Minute_second 分钟和秒,以":"分隔
Hour_second 小时、分钟和秒,以":"分隔
Year_month 年份和月份,以"-"分隔

  下面对时间间隔后三种举例:

  ①、将当前时间增加3小时20分钟

mysql> select current_timestamp;  -- 当前时间
+---------------------+
| current_timestamp |
+---------------------+
| 2016-11-30 15:22:46 |
+---------------------+
1 row in set (0.00 sec) mysql> select date_add(current_timestamp, interval '3:20:00' Hour_second) as add_HourSecond;
+---------------------+
| add_HourSecond |
+---------------------+
| 2016-11-30 18:42:49 |
+---------------------+
1 row in set (0.00 sec)

  ②、将日期'2000-01-01'增加16年10个月

mysql> select date_add('2000-01-01', interval '16-10' Year_month) as add_Year_month;
+----------------+
| add_Year_month |
+----------------+
| 2016-11-01 |
+----------------+
1 row in set (0.00 sec)

  

函数last_day() : 返回所求月份的最后一天

  举例:求"2016-01-01"该月的最后一天

mysql> select last_day('2016-01-01');
+------------------------+
| last_day('2016-01-01') |
+------------------------+
| 2016-01-31 |
+------------------------+
1 row in set (0.00 sec)

 无论提供的参数是date型还是datetime型,last_day()函数都将返回一个date值

2、返回字符串的时间函数

  dayname() : 返回所求的日期是星期几

  举例:求当前日期是星期几

mysql> select dayname(current_date);
+-----------------------+
| dayname(current_date) |
+-----------------------+
| Wednesday |
+-----------------------+
1 row in set (0.00 sec)

  year()、month()、day()、time()...提取部分时间

mysql> select year(current_date),month(current_date),day(current_date),time(current_timestamp);
+--------------------+---------------------+-------------------+-------------------------+
| year(current_date) | month(current_date) | day(current_date) | time(current_timestamp) |
+--------------------+---------------------+-------------------+-------------------------+
| 2016 | 11 | 30 | 16:12:57 |
+--------------------+---------------------+-------------------+-------------------------+
1 row in set (0.00 sec)

3、返回数字的时间函数

  datediff() : 计算两个日期相隔的天数

  举例:计算"2000-01-01"距离现在有多少天

mysql> select datediff('2016-11-30', '2000-01-01');
+--------------------------------------+
| datediff('2016-11-30', '2000-01-01') |
+--------------------------------------+
| 6178 |
+--------------------------------------+
1 row in set (0.00 sec)

  注:datediff()函数会忽略参数中的时钟值。

    sql server 同样具备datediff()函数,但可以在指定时间间隔的类型(如年、月、日、小时等)。sql server 实现上一个例子的方法:

select datediff(day, '2016-11-30', '2000-01-01');

MySQL学习记录--操作时间数据的更多相关文章

  1. 我的MySQL学习记录 完结篇DAY05~

    课程已全部学完,Redis\mongoDB 的学习也会提上日程啦~剩下的最大的最大的问题在于练习,大量的练习,后期会发我的学习记录. 小记:也不知道是不是加强针的缘故,老是拉肚子,记录彻底感冒的一天, ...

  2. MySQL学习记录--生成时间日期数据

    时间数据格式组件: 组件 定义 范围 YYYY 年份,包括世纪 1000~9999 MM 月份 01(January)~12(December) DD 日 01~31 HH 小时 00~23 HHH ...

  3. Mysql --学习:大量数据快速导入导出

    声明:此文供学习使用,原文:https://blog.csdn.net/xiaobaismiley/article/details/41015783 [实验背景] 项目中需要对数据库中一张表进行重新设 ...

  4. Mysql 学习记录

    ( xampp 的mysql 与 直接用 dnf 安装的 mysql 有冲突! ) 1. 数据库基本知识: 一张表的行 又称为 记录 一张表的列 又称为 字段 表结构:所有字段,规定了你的每一条记录所 ...

  5. mysql学习记录

    干净卸载mysql:https://blog.csdn.net/cxy_summer/article/details/70142322mysql 解压缩版安装说明:https://jingyan.ba ...

  6. mysql学习笔记一 —— 数据的增删改查

    1.连接mysql mysql 直接回车(是以root身份,密码空,登陆的是本机localhost) [root@www mysql]# mysql -uroot -p123 -S /var/lib/ ...

  7. MySQL学习记录一

    1.MySQL join操作 left join以左表为基础,其记录会全部表示出来,而右表只显示满足搜索条件的记录.right join以右表为基础,其记录会全部显示出来,而左表只显示满足搜索条件的记 ...

  8. MySQL学习记录(导入Excel表到数据库,并筛选条件输出)

    附上:重置mysql账号密码方法 ubuntu系统下mysql重置密码和修改密码操作 - skh2015java的博客 - CSDN博客(改完重启,登录mysql要root/sudo权限) Cento ...

  9. mysql学习记录(一)

    #打开MySQL服务 sudo service mysql start #Ubuntu Linux 安装配置MySQL #安装MySQL服务器,核心程序 sudo apt-get install my ...

随机推荐

  1. GPT WIN 换硬盘 硬盘克隆或复制 无法确定的问题,硬盘大小不一致换系统。

    当你购买了一个新硬盘,希望换掉旧硬盘的时候.发现 GPT + EFI 要求硬盘上的前两个分区必须和旧的一样,否则就无法启动. 这就是你用 分区大师(PartAssist)硬盘克隆完了,也无法启动的原因 ...

  2. oracle存储过程常用技巧

    我们在进行pl/sql编程时打交道最多的就是存储过程了.存储过程的结构是非常的简单的,我们在这里除了学习存储过程的基本结构外,还会学习编写存储过程时相关的一些实用的知识.如:游标的处理,异常的处理,集 ...

  3. c++中的<<函义

    1.一个是左移运算:x = 4<< 2; 2.输出流运算:cout <<x;//X的值输出流到设备中.

  4. 3.vi 和软件安装

    vi编辑器全屏幕纯文本编辑器1.软件开发(程序编写) 2.配置文件修改以及系统服务调用模式 命令模式 插入模式 末行模式 a  追加    i 插入   o  打开(下一行) ESC shift+: ...

  5. Ant打包

    <?xml version="1.0" encoding="UTF-8"?> <!--打包的实质生成jar包的实质1.编译工程src文件夹下的 ...

  6. greenDAO3 基本使用

    greenDAO3基本使用 greenDAO3开始使用注解的方式定义实体类(entity),并且是通过安装gradle插件来生成代码.之前的版本则是通过建立一个独立的Java-lib工程来存放生成的文 ...

  7. 【转】eclipse 创建struts2

    转载地址:http://blog.163.com/sean_zwx/blog/static/169032755201091595558378/ 今天我用Ecipse搭建Struts框架,并且使用Str ...

  8. session详解

    什么是Session 对Tomcat而言,Session是一块在服务器开辟的内存空间,其存储结构为ConcurrentHashMap: Session的目的 Http协议是一种无状态协议,即每次服务端 ...

  9. mybatis框架下解决数据库中表的列的字段名和实体类属性不相同的问题

    导包.... 实体类中的属性,getter,setter,tostring,构造等方法就不写了 private int id; private String orderNo; private floa ...

  10. shell技巧

    如何实现Shell脚本以DEAMON的方式运行,即实现Shell版的Fork if [ "$1" != 'background' ] ; then scriptdir=$(cd & ...