@日期和时间函数主要用来处理日期和时间值,一般的日期函数除了使用DATE类型的参数外,也可以使用DATETIME或者TIMESTAMP类型的参数,但会忽略这些值的时间部分。
日期和时间函数
获取当前日期的函数和当前时间的函数
1.CURDATE()和CURRENT_DATE()
CURDATE()和CURRENT_DATE()函数作用相同
SELECT CURDATE(),CURRENT_DATE(),CURDATE()+0;
2.CURTIME()和CURRENT_TIME()
CURTIME()和CURRENT_TIME()函数作用相同
SELECT CURTIME(),CURRENT_TIME(),CURTIME()+0;
获取当前日期和时间函数
CURRENT_TIMESTAMP(),LOCALTIME(),NOW()和SYSDATE()4个函数的作用相同,返回当前日期和时间值。
SELECT CURRENT_TIMESTAMP(),LOCALTIME(),NOW(),SYSDATE();
UNIX时间戳函数
1.UNIX_TIMESTAMP(date)
UNIX_TIMESTAMP(date)如果无参数调用,则返回一个UNIX时间戳作为无符号整数。
SELECT UNIX_TIMSTAMP(),UNIX_TIMESTAMP(NOW()),NOW();
2.FROM_UNIXTIME(date)
FROM_UNIXTIME(date)函数把UNIX时间戳转换为普通格式的时间,UNIX_TIMESTAMP(date)函数互为反函数。
SELECT FROM_UNIXTIME('1364098609');
返回UTC日期的函数和返回UTC时间的函数
1.UTC_DATE()
UTC_DATE()函数返回当前UTC日期值。
SELECT UTC_DATE(),UTC_TIME()+0;
2.UTC_TIME()
UTC_TIME()返回当前UTC时间值。
SELECT UTC_TIME(),UTC_TIME()+0;
获取月份的函数MONTH(date)和MONTHNAME(date)
1.MONTH(date)
MONTH(date)返回date对应的月份。
SELECT MONTH('2013-02-13');
2.MONTHNAME(date)
MONTHNAME(date)函数返回日期date对应月份的英文全名。
SELECT MONTHAME('2013-02-13');
获取星期的函数DAYNAME(d),DAYOFWEEK(d)和WEEKDAY(d)
1.DAYNAME(d)
DAYNAME(d)函数返回d对应的工作日的英文名。
SELECT DAYNAME('2016-02-10');
2.DAYOFWEEK(d)
DAYOFWEEK(d)函数返回d对应的一周中的索引
SELECT DAYOFWEEK('2016-02-14');
3.WEEKDAY(d)
WEEKDAY(d)返回d对应的工作日索引:0表示周一,1表示周二,....)
SELECT WEEKDAY('2016-02-14 22:23:00'),
WEEKDAY('2016-04-01');
获取星期数的函数week(d)和WEEKOFYEAR(d)
1.WEEK(d)
SELECT WEEK(NOW());
获取天数的函数DAYOFYEAR(d)和DAYOFMONTH(d)
SELECT DAYOFMONTH(NOW()),DAYOFWEEK(NOW()),DAYOFYEAR(NOW());
条件判断函数
--条件判断函数IF(条件,’true‘,'fasle')
SELECT IF(1>2,'TRUE','FALSE');
SELECT IF(1>2,2,3),IF(1>2,'YES','NO'),IF(STRCMP('TEST','TEST1'),'NO','YES');
--判断,如果第一个为空,则使用第二参数的函数IF NULL(expr1,expr2)
SELECT IF NULL (1,2),IF NULL(NULL,10),IF NULL(NULL,NULL);
--分支语句(选择语句,类似switch语句)CASE函数
case条件 WHEN 值WHEN值THEN值....ELSE值 END,选择1是获取当前日期和时间,选择2获取当前MySQL版本选择其他显示输入有误
SELECT CASE 2 WHEN 1 THEN NOW() WHEN 2 THEN VERSION () ELSE '输入有误' END;
系统函数
获取MySQL版本·号,连接数和数据库名的函数
-- 查看MySQL版本号
SELECT VERSION();
--查看MySQL的连接数
SELECT CONNECTION_ID();
-- 查看SHOW PROCESSLTST(只显示前面100条)
SHOW PROCESLTST;
--显示所有连接数
SHOW FULL PROCESSLTST;
--显示所有数据库
SELECT DATABASE(),SCHEMA();
--查看用户
SELECT USER(), CURRENT_USER(),SYSTEM_USER(),SESSION_USER();
--获取字符串字符节和排列方式的函数
SELECT CHARSET ('dd');
SELECT COLLATION('DD');
加密函数
@用于处理对数据进行加密和界面处理,保证重要数据不被别人获取。
--加密函数MD5(str)经常用
SELECT MD5(mypwd);
加密函数ENCODE(str,pswd_str)
--结果是一个和str长度相同的二进制字符串。
SELECT ENCODE('secret','cry'), LENGTH (ENCODE('secret','cry'));
解密函数DECODE(crypt_str,pswd_str)
SELECT DECODE(ENCODE('secret','cry'),'cry');
其他函数