日期函数
常用日期函数
获取当前日期时间
- DUAL表示什么?
DUAL表仅仅是一个虚拟表 官方对DUAL表的解释:You are permitted to specify DUAL as a dummy table name in situations where no tables are referenced 在没有引用表的情况下,允许指定DUAL作为虚拟表名
示范案例:
-- 1.日期函数
-- 查询当前日期
SELECT CURRENT_DATE FROM DUAL;
-- 查询当前时间
SELECT CURRENT_TIME FROM DUAL;
# 获取当前时间戳
SELECT CURRENT_TIMESTAMP() FROM DUAL;
SELECT NOW() FROM DUAL; -- 日期 时间
# 创建测试表 信息表
CREATE TABLE mes(
id INT,
content VARCHAR(30),
send_time DATE); -- data() 日期
-- 添加记录
INSERT INTO mes VALUES(1,'中央新闻',CURRENT_TIMESTAMP);
INSERT INTO mes VALUES(2,'北京新闻',NOW());
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.查询emp表,如果comm表示null,则显示0.0
SELECTIFNULL (comm,0.0) FROM `emp`;
SELECT IF (comm IS NOT NULL,comm,0.0) AS comm FROM `emp`;
-- 2.查询如果emp表的job是'CLERK',则显示 职员,如果是 'MANAGER',则显示经理
-- 如果是'SALESMAN' 则显示销售人员,其他正常显示。
SELECT
( CASE WHEN job = 'CLERK' THEN '职员' WHEN job = 'MANAGER' THEN '经理' WHEN job = 'SALESMAN' THEN '销售人员' ELSE job END ) as job
FROM
`emp`;