登录  /  注册

mysql日期和时间

韦小宝
发布: 2017-12-04 09:36:51
原创
1732人浏览过

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

一、日期时间获取

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

SELECT 
    NOW(), 
    CURRENT_TIMESTAMP(), 
    LOCALTIME(), 
    LOCALTIMESTAMP(),
    SYSDATE();
登录后复制

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

SELECT NOW(), SLEEP(3), NOW();
登录后复制

执行结果:

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()函数执行时的实时时间:

SELECT SYSDATE(), SLEEP(3), SYSDATE();
登录后复制

执行结果:

SYSDATE()            sleep(3)   SYSDATE()
2017-11-09 17:25:05  0          2017-11-09 17:25:08
登录后复制

1.2、 获取当前本地的日期

SELECT 
    CURDATE(), 
    CURRENT_DATE();
登录后复制

1.3、 获取当前本地的时间

SELECT 
    CURTIME(), 
    CURRENT_TIME();
登录后复制

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

SELECT 
    UTC_TIMESTAMP();
登录后复制

1.5、 获取当前UTC日期

SELECT 
    UTC_DATE();
登录后复制

1.6、 获取当前UTC时间

SELECT 
    UTC_TIME();
登录后复制

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

SELECT UNIX_TIMESTAMP();  -- 当前时间时间戳
SELECT UNIX_TIMESTAMP('2017-11-09 12:30:00');  -- 自1970年到2017-11-09 12:30:00经过的秒数
登录后复制

二、 时间操作

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

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、 获取某天在一周、一月、一年中所处位置

SET @dt = '2017-11-09';
SELECT DAYOFWEEK(@dt);   -- 5       星期日为0,5代表星期四
SELECT DAYOFMONTH(@dt);  -- 9       一个月的第9天
SELECT DAYOFYEAR(@dt);   -- 313     2017年的第313天
登录后复制

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

SELECT LAST_DAY('2017-02-05');   -- 2017-02-28
登录后复制

2.4. 时间加减

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. 两个日期、时间加减

SELECT DATEDIFF('2008-08-08', '2008-08-01');  -- 7
SELECT DATEDIFF('2008-08-01', '2008-08-08');  -- -7  第一个参数减去第二个参数
登录后复制
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. 时间格式化

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. 秒计算

计算指定时间折合多少秒,如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日期和时间的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号