本文已参与「新人创作礼」活动,一起开启掘金创作之路。
今天讲讲 SQL 中一些基本的语句
-
CURDATE()
定义: CURDATE() 函数返回当前的日期。
用法 CURDATE()
SELECT CURDATE(),CURRENT_TIME,NOW()
-
YEAR()
定义: 函数返回一个指定日期的年份值,范围为1000到9999,如果日期为零,YEAR()函数返回0
SELECT YEAR(NOW()) as YEAR
SELECT YEAR(CURRENT_DATE) as YEAR
*注 as 是表名称 或 列名称 指定别名
是自定义的(写不写都行,为了方便看,我写上了)
这两个语句输出的结果一样,获取年份
相同的
SELECT NOW() as now, MONTH(NOW()) as momth,DAY(NOW()) as day,HOUR(NOW()) as hour,MINUTE(NOW()) as minute,SECOND(NOW()) as second
-
IF既可以作为表达式用,也可在存储过程中作为流程控制语句使用
IF表达式 如果判断数字为空 可以 is Null IF(expr1,expr2,expr3) 给一个假的身份证号:465256199905186688
-- 查询身份证号中的年份
-- 如果长度是18位,则截取第7位之后的四位,否则返回空
SELECT IF(LENGTH(idCard)=18,SUBSTRING(idCard,7,4),NULL) as year FROM fyh_vvm where id=2
-
CONCAT()
定义: 函数用于将多个字符串连接成一个字符串
SELECT CONCAT('19',SUBSTRING(idCard,9,2)) as year FROM fyh_vvm where id=2
-- 获取今年的年龄
SELECT YEAR(NOW()) - if(LENGTH(idCard)=18,SUBSTRING(idCard,7,4),NULL) as age FROM fyh_vvm where id=2
-
CONCAT_WS()
定义: 由以端到端方式连接或连接两个或多个字符串值所产生的字符串。它使用第一个函数参数中指定的分隔符分隔这些连接的字符串值。(CONCAT_WS表示用分隔符连接。)
注: 函数需要至少两个参数,并且不超过 254 个参数
SELECT CONCAT_WS('/',id,age) FROM fyh_vvm
-
UNION
-
UNION ALL允许重复的值
定义 操作符用于合并两个或多个 SELECT 语句的结果集
比如这两张表都有id
SELECT id FROM fyh_vvm UNION SELECT id FROM fyh_user
-
ORDER BY
定义 对结果集进行排序
DESC降序的关键字
SELECT id FROM fyh_vvm ORDER BY id
使用DESC后,通过id降序排列
SELECT id FROM fyh_vvm ORDER BY id DESC
-
获取时间格式不是正常模式时,实体类加上@JsonFormat
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;//创建时间
返回的就是
"2021-10-08 17:46:00"