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()	返回日期/时间按的单独部分

  

  待续。。。

原文地址:https://www.cnblogs.com/fengde/p/5047802.html