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. Java线程间通信方式剖析——Java进阶(四)

    原创文章,同步发自作者个人博客,转载请在文章开头处以超链接注明出处 http://www.jasongj.com/java/thread_communication/ CountDownLatch C ...

  2. 苹果版App开发心得

    这几个月中做的工作包括网站开发.安卓App开发和苹果App开发,前两者用的语言都是我熟悉的java,故苹果知识的学习,较安卓知识的学习,多出「语言基础」一块,其他方面差不多. 之前发过安卓那篇,如感兴 ...

  3. Asp.net在IE10、IE11下事件丢失经验总结

    asp.net4.0出生得比IE10早,所以asp.net4.0以前版本不认识IE10 的 User-Agent 标头,导致的后果就是ASP.NET 特定功能失效,例如:页面报错__doPostBac ...

  4. 非root用户 gcc安装

    亲测 可以安装 过程并不复杂 但可能需要一些时间 认真一点 按照步骤 一定可以成功哒 其他版本可以将ftp.gnu.org/gnu/gcc/敲入浏览器,找到自己需要的文件:[安装过4.9.0:成功:用 ...

  5. 通过正则表达式实现简单xml文件解析

    这是我通过正则表达式实现的xml文件解析工具,有些XHTML文件中包含特殊符号,暂时还无法正常使用. 设计思路:常见的xml文件都是单根树结构,工具的目的是通过递归的方式将整个文档树装载进一个Node ...

  6. EF INNER JOIN,LEFT JOIN,GROUP JOIN

    IQueryable<TOuter>的扩展方法中提供了 INNER JOIN,GROUP JOIN但是没有提供LEFT JOIN GROUP JOIN适用于一对多的场景,如果关联的GROU ...

  7. getFragmentManager()和getSupportFragmentManager()

    在Android开发中,少不了Fragment的运用.目前在实际运用中,有v-4包下支持的Fragment以及app包下的Fragment,这两个包下的FragmentManager获取方式有点区别, ...

  8. mysql 范式和反范式

    第一范式(1NF)强调的是列的原子性,即列不能够再分成其他几列. 第二范式(2NF) 首先是 2NF,另外包含两部分内容一是表必须有一个主键:二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于 ...

  9. C头文件

    #include<cstdio>#include<iostream>#include<cstdlib>#include<cmath>#include&l ...

  10. 21.TFS文件系统搭建笔记

    TFS文件系统搭建笔记 参考地址: https://github.com/alibaba/tfs/blob/master/INSTALL.md https://github.com/alibaba/t ...