mysql日期和时间


本文摘自PHP中文网,作者韦小宝,侵删。

刚一开始肯定会有很多同学对mysql获取时间不了解,今天我们就来详细的讲一下mysql的时间和日期,对于mysql时间和日期不了解的同学可以多看看哦~

一、日期时间获取

1,1获取当前本地的日期和时间

1

2

3

4

5

6

SELECT

    NOW(),

    CURRENT_TIMESTAMP(),

    LOCALTIME(),

    LOCALTIMESTAMP(),

    SYSDATE();

上面5个函数都可以获取当前本地时间,但SYSDATE有所不同。

1

SELECT NOW(), SLEEP(3), NOW();

执行结果:

1

2

NOW()                  sleep(3)     NOW()

2017-11-09 17:21:09    0            2017-11-09 17:21:09

虽然sleep了3秒,但NOW()前后2次获取到时间是一样的,也就是说NOW()函数获取的时间是在整个SQL语句开始执行时的时间,无论SQL语句中有多少个NOW()函数,获取到的时间都是一样的。

CURRENT_TIMESTAMP(), LOCALTIME(), LOCALTIMESTAMP()和NOW()函数一样。

但SYSDATE不同,它获取到的是SYSDATE()函数执行时的实时时间:

1

SELECT SYSDATE(), SLEEP(3), SYSDATE();

执行结果:

1

2

SYSDATE()            sleep(3)   SYSDATE()

2017-11-09 17:25:05  0          2017-11-09 17:25:08

1.2、 获取当前本地的日期

1

2

3

SELECT

    CURDATE(),

    CURRENT_DATE();

1.3、 获取当前本地的时间

1

2

3

SELECT

    CURTIME(),

    CURRENT_TIME();

1.4、 获取当前UTC日期和时间

1

2

SELECT

    UTC_TIMESTAMP();

1.5、 获取当前UTC日期

1

2

SELECT

    UTC_DATE();

1.6、 获取当前UTC时间

1

2

SELECT

    UTC_TIME();

1.7、获取时间戳(自1970年经过的秒)

1

2

SELECT UNIX_TIMESTAMP();  -- 当前时间时间戳

SELECT UNIX_TIMESTAMP('2017-11-09 12:30:00');  -- 自1970年到2017-11-09 12:30:00经过的秒数

二、 时间操作


2.1、 从字符串提取时间和日期

1

2

3

4

5

6

7

8

9

10

11

12

SET @dt = '2008-09-10 07:15:30.123456';

SELECT DATE(@dt);        -- 2008-09-10

SELECT TIME(@dt);        -- 07:15:30.123456

SELECT YEAR(@dt);        -- 2008

SELECT QUARTER(@dt);     -- 3

SELECT MONTH(@dt);       -- 9

SELECT WEEK(@dt);        -- 36

SELECT DAY(@dt);         -- 10

SELECT HOUR(@dt);        -- 7

SELECT MINUTE(@dt);      -- 15

SELECT SECOND(@dt);      -- 30

SELECT MICROSECOND(@dt); -- 123456

2.2、 获取某天在一周、一月、一年中所处位置

1

2

3

4

SET @dt = '2017-11-09';

SELECT DAYOFWEEK(@dt);   -- 5       星期日为0,5代表星期四

SELECT DAYOFMONTH(@dt);  -- 9       一个月的第9天

SELECT DAYOFYEAR(@dt);   -- 313     2017年的第313天

2.3、 获取指定日期的最后一天

1

SELECT LAST_DAY('2017-02-05');   -- 2017-02-28

2.4. 时间加减

1

2

3

4

5

6

7

8

9

10

11

SET @dt = "2017-11-09 17:10:20.0000001";

SELECT DATE_ADD(@dt, INTERVAL 1 DAY);        -- 加1天

SELECT DATE_ADD(@dt, INTERVAL 2 HOUR);       -- 加2小时

SELECT DATE_ADD(@dt, INTERVAL 1 MINUTE);     -- 加1分钟

SELECT DATE_ADD(@dt, INTERVAL 1 SECOND);

SELECT DATE_ADD(@dt, INTERVAL 1 MICROSECOND); -- 加1微妙

SELECT DATE_ADD(@dt, INTERVAL 1 WEEK);        -- 加1周

SELECT DATE_ADD(@dt, INTERVAL 1 MONTH);

SELECT DATE_ADD(@dt, INTERVAL 1 QUARTER);     -- 加1个季度

SELECT DATE_ADD(@dt, INTERVAL 1 YEAR);

SELECT DATE_ADD(@dt, INTERVAL -1 DAY);       -- 减1天

2.5. 两个日期、时间加减

1

2

SELECT DATEDIFF('2008-08-08', '2008-08-01');  -- 7

SELECT DATEDIFF('2008-08-01', '2008-08-08');  -- -7  第一个参数减去第二个参数

1

2

SELECT TIMEDIFF('2008-08-08 08:08:08', '2008-08-08 00:00:00');  -- 08:08:08

SELECT TIMEDIFF('00:00:00', '08:08:08');                        -- -08:08:08

2.6. 时间格式化

1

2

3

SELECT DATE_FORMAT('2008-08-08 22:23:00', '%W %M %Y');      -- Friday August 2008

SELECT DATE_FORMAT('2008-08-08 22:23:01', '%Y%m%d%H%i%s');  -- 20080808222301

SELECT TIME_FORMAT('22:23:01', '%H.%i.%s');                 -- 22.23.01

2.7. 秒计算

1

2

3

计算指定时间折合多少秒,如00:01:00表示1分钟,等于60秒。

SELECT TIME_TO_SEC('01:00:05');  -- 3605

SELECT SEC_TO_TIME(3605);        -- '01:00:05'

以上就是 mysql日期和时间 的所有内容了,希望可以给同学们带来新的认识和启发吧

相关推荐:

MySQL查询时间基础教程

MySQL时间日期查询方法与函数

mysql时间函数使用 mysql数据库差异比较的PHP代码

以上就是mysql日期和时间的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

怎么彻底删除mysql服务?

mysql外键基本功能与用法详解

mysql表的分区是什么格式

mysql中关于浮点型转换成字符型出现的一些问题解决

mysql数据库优化之索引实现原理与用法分析

一文读懂navicat for mysql基础知识

mysql中使用正则表达式查询实例详解

mysql数据库如何使用

mysql使用变量实现各种排序详解

mysql5.6启动内存占用过高解决方案

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...