MySQL 常用函数分析
一些常用的MySQL函数,工作中可能用到 http://www.w3school.com.cn/sql/index.asp
一) 条件判断:
1)IF (expr1 and expr2, 'yes', 'no') AS 'result'
2)CASE WHEN expr1 and expr2 THEN 'a' WHEN expr3 and expr4 THEN 'b' ELSE 'c' END AS 'result'
为了实验,创建如下表,并且插入些记录:
CREATE TABLE `user` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(32) DEFAULT '', `age` SMALLINT(6) DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=INNODB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; insert into `user` (`id`, `name`, `age`) values('1','A','12'); insert into `user` (`id`, `name`, `age`) values('2','B','24'); insert into `user` (`id`, `name`, `age`) values('3','C','90'); insert into `user` (`id`, `name`, `age`) values('4','D','7'); insert into `user` (`id`, `name`, `age`) values('5','E','42');
IF 查询:
SELECT age, IF(age > 10, 'yes', 'no') AS age_gt_10 FROM USER
CASE WHEN 查询:
SELECT age, CASE WHEN age>=0 AND age<10 THEN 'x<10' WHEN age >=10 AND age <100 THEN '10=<x=<100' ELSE 'x>=100' END AS 'result' FROM USER
二) 时间操作 http://www.w3school.com.cn/sql/sql_dates.asp
1) 时间格式化 DATE_FORMAT(date, format)
date 参数是合法的日期。format 规定日期/时间的输出格式。 可以使用的格式有: 格式 描述 %a 缩写星期名 %b 缩写月名 %c 月,数值 %D 带有英文前缀的月中的天 %d 月的天,数值(00-31) %e 月的天,数值(0-31) %f 微秒 %H 小时 (00-23) %h 小时 (01-12) %I 小时 (01-12) %i 分钟,数值(00-59) %j 年的天 (001-366) %k 小时 (0-23) %l 小时 (1-12) %M 月名 %m 月,数值(00-12) %p AM 或 PM %r 时间,12-小时(hh:mm:ss AM 或 PM) %S 秒(00-59) %s 秒(00-59) %T 时间, 24-小时 (hh:mm:ss) %U 周 (00-53) 星期日是一周的第一天 %u 周 (00-53) 星期一是一周的第一天 %V 周 (01-53) 星期日是一周的第一天,与 %X 使用 %v 周 (01-53) 星期一是一周的第一天,与 %x 使用 %W 星期名 %w 周的天 (0=星期日, 6=星期六) %X 年,其中的星期日是周的第一天,4 位,与 %V 使用 %x 年,其中的星期一是周的第一天,4 位,与 %v 使用 %Y 年,4 位 %y 年,2 位
测试:
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') AS t
2) 时间大小比较
DATE_ADD() 给日期添加指定的时间间隔 DATE_SUB() 从日期减去指定的时间间隔 DATEDIFF() 返回两个日期之间的天数
3) 获取时间
NOW() 返回当前的日期和时间 CURDATE() 返回当前的日期 CURTIME() 返回当前的时间 DATE() 提取日期或日期/时间表达式的日期部分 EXTRACT() 返回日期/时间按的单独部分
待续。。。