首页 > 技术文章 > mysql当前时间,日期转换,日期格式化

chenduzizhong 2018-08-13 15:50 原文

-- 当前时间
SELECT NOW(), SYSDATE(), CURRENT_TIMESTAMP(), LOCALTIME(), LOCALTIMESTAMP();
SELECT CURDATE(), CURTIME();


-- 时间格式化
SELECT DATE_FORMAT(NOW(),'%y-%c-%d %h:%i:%s');
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s');
SELECT DATE_FORMAT('2016-07-12 02:10:39', '%Y-%m-%d %h:%i:%s');
SELECT STR_TO_DATE('2016-07-12 02:10:39', '%Y-%m-%d %h:%i:%s');

SET @dt = NOW();
SELECT DATE(@dt); -- 2016-07-12
SELECT TIME(@dt); -- 14:03:39
SELECT YEAR(@dt); -- 2016
SELECT QUARTER(@dt); -- 3
SELECT MONTH(@dt); -- 7
SELECT WEEK(@dt); -- 28
SELECT DAY(@dt); -- 12
SELECT HOUR(@dt); -- 14
SELECT MINUTE(@dt); -- 3
SELECT SECOND(@dt); -- 39
SELECT MICROSECOND(@dt); -- 0


-- 时间计算
SET @dt = NOW();
SELECT DATE_ADD(@dt, INTERVAL 1 DAY);   -- 加1天
SELECT DATE_ADD(@dt, INTERVAL 1 HOUR);  -- 加1小时
SELECT DATE_ADD(@dt, INTERVAL 1 MINUTE);    -- 加1分钟
SELECT DATE_ADD(@dt, INTERVAL 1 SECOND); -- 加1秒
SELECT DATE_ADD(@dt, INTERVAL 1 MICROSECOND);-- 加1毫秒
SELECT DATE_ADD(@dt, INTERVAL 1 WEEK);   -- 加1周
SELECT DATE_ADD(@dt, INTERVAL 1 MONTH);  -- 加1月
SELECT DATE_ADD(@dt, INTERVAL 1 QUARTER);-- 加1季
SELECT DATE_ADD(@dt, INTERVAL 1 YEAR);   -- 加1年


-- 返回星期和月份名称
SET @dt = NOW();
SELECT DAYNAME(@dt); -- Tuesday
SELECT MONTHNAME(@dt); -- July

-- 返回最后一天
SET @dt = NOW();
SELECT LAST_DAY(@dt); -- 2016-07-31

-- MySQL(时间、秒)转换函数:time_to_sec(time), sec_to_time(seconds)
SELECT TIME_TO_SEC('02:00:15'); -- 7215
SELECT SEC_TO_TIME(7215); -- '02:00:15'

-- MySQL(日期、天数)转换函数:to_days(date), from_days(days)
SELECT TO_DAYS('0000-00-00'); -- 0
SELECT TO_DAYS('2016-07-12'); -- 736522
SELECT FROM_DAYS(0); -- '0000-00-00'
SELECT FROM_DAYS(736522); -- '2016-07-12'


查询数据,需要将时间截取为 2018-07-01不要后面的时分秒,==》 使用STRSUB(字段,开始长度,结束长度)函数,这里开始长度不从0开始

推荐阅读