#日期函数
/*NOW()当前日期和时间;
CURDATE()/CURRENT_DATE()返回当前日期
CURRENT_TIME()/CURTIME()返回当前时间
CURRENT_TIMESTAMP()返回当前日期和时间
ADDDATE(d,n)计算起始日期 d 加上 n 天的日期
*/
SELECT NOW(),
CURDATE(),
CURRENT_DATE(),
CURRENT_TIME(),
CURRENT_TIMESTAMP(),
ADDDATE("2017-06-15", INTERVAL 10 DAY) ;
/*
ADDTIME(t,n)时间 t 加上 n 秒的时间
DATE()从日期或日期时间表达式中提取日期值
DAY(d)返回日期值 d 的日期部分
DATEDIFF(d1,d2)计算日期 d1->d2 之间相隔的天数
*/
SELECT
ADDTIME('2011-11-11 11:11:11', 5),
DATE("2017-06-15 11:11:16"),
DAY("2017-06-15"),
DATEDIFF('2001-01-01', '2001-02-02') ;
/*
DATE_FORMAT按表达式 f的要求显示日期 d
DAYNAME(d)返回日期 d 是星期几,如 Monday,Tuesday
DAYOFMONTH(d)计算日期 d 是本月的第几天
DAYOFWEEK(d)日期 d 今天是星期几,1 星期日,2 星期一,以此类推
DAYOFYEAR(d)计算日期 d 是本年的第几天
EXTRACT(type FROM d)从日期 d 中获取指定的值,type 指定返回的值
type可取值为:
MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH
*/
SELECT
DATE_FORMAT(
'2011.11.11 11:11:11',
'%Y-%m-%d %r'
),
DAYNAME('2011-11-11 11:11:11'),
DAYOFMONTH('2011-11-11 11:11:11'),
DAYOFWEEK('2011-11-11 11:11:11') ,DAYOFYEAR('2011-11-11 11:11:11'),
EXTRACT(MINUTE FROM '2011-12-13 14:15:16');
/*
DAYOFWEEK(d)日期 d 今天是星期几,1 星期日,2 星期一,以此类推
UNIX_TIMESTAMP()得到时间戳
FROM_UNIXTIME()时间戳转日期
*/
SELECT
DAYOFWEEK('2011-11-11 11:11:11'),
UNIX_TIMESTAMP('2019-2-19'),
FROM_UNIXTIME(1550505600),
FROM_UNIXTIME(1550505600, '%Y-%m-%d') ;
#高级函数
/*
IF(expr,v1,v2)如果表达式 expr 成立,返回结果 v1;否则,返回结果 v2
CONV(x,f1,f2)返回 f1 进制数变成 f2 进制数
CURRENT_USER()/SESSION_USER()/SYSTEM_USER()/USER()返回当前用户
DATABASE()返回当前数据库名
VERSION()返回数据库的版本号
*/
SELECT IF(1>0,'true','false'),CONV(13,10,2),CURRENT_USER(),VERSION();