MySQL日期时间

获得当前系统日期时间

-- 获得当前日期时间
SELECT NOW();    -- '2010-04-15 17:55:39'
-- 下同
SELECT CURRENT_TIMESTAMP();
-- 获得当前日期
SELECT CURDATE();    -- '2010-04-15'
-- 下同
SELECT CURRENT_DATE();
-- 获得当前时间
SELECT CURTIME();    -- '17:55:39'
-- 下同
SELECT CURRENT_TIME();
-- 获取某月份共多少天
SELECT DAYOFMONTH(LAST_DAY('2013-10-05 00:01:02'));  -- 31

时间戳

-- 日期时间字符串 -> 时间戳(s)
SELECT UNIX_TIMESTAMP(NOW());    -- 1513729790
-- 时间戳(s) -> 日期时间字符串
SELECT FROM_UNIXTIME(1513729790);    -- '2017-12-20 08:29:50'

格式化

参考:http://www.w3school.com.cn/sql/func_date_format.asp

-- 格式化日期时间
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:00');    -- 将当前时间的秒数格式化成00

日期时间提前/推后

-- 当前日期加1天(即明天),如下输出“2017-12-21”
SELECT DATE_ADD(CURDATE(), INTERVAL 1 DAY);
-- 下同
SELECT DATE_SUB(CURDATE(), INTERVAL -1 DAY);
-- 当前时间减1天(即昨天),如下输出“2017-12-21 08:01:08”
SELECT DATE_ADD(NOW(), INTERVAL -1 DAY);
-- 当前时间减15分钟(即15分钟前),如下输出“2017-12-20 07:46:08”
SELECT DATE_ADD(NOW(), INTERVAL -15 MINUTE);

日期时间输出

01. 选取日期时间的各个部分:日期、时间、年、季度、月、日、小时、分钟、秒、微秒
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
02. MySQL dayof… 函数:dayofweek(), dayofmonth(), dayofyear()
分别返回日期参数,在一周、一月、一年中的位置
SET @dt = '2008-08-08';

SELECT dayofweek(@dt);  -- 6
SELECT dayofmonth(@dt);  -- 8
SELECT dayofyear(@dt);  -- 221

日期 '2008-08-08' 是一周中的第 6 天(1 = Sunday, 2 = Monday, …, 7 = Saturday);一月中的第 8 天;一年中的第 221 天。
03. MySQL 返回星期和月份名称函数:dayname(), monthname()
SET @dt = '2008-08-08';

SELECT dayname(@dt);  -- Friday
SELECT monthname(@dt);  -- August
04. NOW()函数返回数字串
SELECT now() + ''

猜你喜欢

转载自my.oschina.net/u/812874/blog/1580158