日期函数

常用日期函数

获取当前日期时间

  • DUAL表示什么?

    DUAL表仅仅是一个虚拟表 官方对DUAL表的解释:You are permitted to specify DUAL as a dummy table name in situations where no tables are referenced 在没有引用表的情况下,允许指定DUAL作为虚拟表名

示范案例:

  1. -- 1.日期函数
  2. -- 查询当前日期
  3. SELECT CURRENT_DATE FROM DUAL;
  4. -- 查询当前时间
  5. SELECT CURRENT_TIME FROM DUAL;
  6. # 获取当前时间戳
  7. SELECT CURRENT_TIMESTAMP() FROM DUAL;
  8. SELECT NOW() FROM DUAL; -- 日期 时间
  9. # 创建测试表 信息表
  10. CREATE TABLE mes(
  11. id INT,
  12. content VARCHAR(30),
  13. send_time DATE); -- data() 日期
  14. -- 添加记录
  15. INSERT INTO mes VALUES(1,'中央新闻',CURRENT_TIMESTAMP);
  16. INSERT INTO mes VALUES(2,'北京新闻',NOW());
  17. INSERT INTO mes VALUES(3,'东莞新闻',NOW());

流程控制函数

语法格式:

IF(expr1,expr2,expr3) 如果expr1为True,则返回expr2,否则返回expr3
IFNULL(expr1,expr2) 如果expr1不为null,则返回expr1,否则返回expr2
SELECT CASE
WHEN expr1 THEN
value1
WHEN expr2 THEN
value2
ELSE
value3
END;
表示如果expr1为true,则返回value1,如果expr2为true,则返回value2,否则返回value3

示范案例:

  1. -- 1.查询emp表,如果comm表示null,则显示0.0
  2. SELECTIFNULL (comm,0.0) FROM `emp`;
  3. SELECT IF (comm IS NOT NULL,comm,0.0) AS comm FROM `emp`;
  4. -- 2.查询如果emp表的job'CLERK',则显示 职员,如果是 'MANAGER',则显示经理
  5. -- 如果是'SALESMAN' 则显示销售人员,其他正常显示。
  6. SELECT
  7. ( CASE WHEN job = 'CLERK' THEN '职员' WHEN job = 'MANAGER' THEN '经理' WHEN job = 'SALESMAN' THEN '销售人员' ELSE job END ) as job
  8. FROM
  9. `emp`;