一些常用的mysql语句

简介个人博客,用来做什么?我刚开始就把它当做一个我吐槽心情的地方,也就相当于一个网络记事本,写上一些关于自己生活工作中的小情小事,也会放上一些照片,音乐。每天工作回家后就能访问自己的网站,一边听着音乐,一边写写文章,回想之前踩过的坑。

时间相关


获取当前日期

SELECT NOW(),CURDATE(),CURTIME();


获取前一天

SELECT  DATE_SUB(CURDATE(),INTERVAL 1 DAY);


获取后一天

SELECT  DATE_SUB(CURDATE(),INTERVAL -1 DAY);


年份差

SELECT TIMESTAMPDIFF(YEAR,'2017-05-01', DATE_FORMAT(now(), '%Y-%m-%d'))


月份差

SELECT TIMESTAMPDIFF(MONTH,'2017-05-01', DATE_FORMAT(now(), '%Y-%m-%d'))


天数差

SELECT datediff(DATE_FORMAT(now(), '%Y-%m-%d'),DATE_FORMAT('2018-09-10','%Y-%m-%d'))


获取本月最后一天

select last_day(curdate());


获取本月第一天

select date_add(curdate(), interval - day(curdate()) + 1 day);


获取当前时间与一个月之间的天数

select datediff(curdate(), date_sub(curdate(), interval 1 month));


身份证相关


通过身份证号码判断性别,例子为18位身份证的

select if (MOD(SUBSTRING(idno,17,1),2),'男','女') AS 性别 from sometable;


查询相关


多表查询,有外键关联

select a.name,b.phone from tableA a inner join tableB b on a.id = b.aid;


查询重复记录,本例子为查询公司内有多少人是重名的,对应的姓名是什么

select name,count(name) from company group by name having count(name) > 1


数据相关


把某张表的一部分数据插入到其他表,常用于做导出数据处理

insert into tableA (param1,param2) select `name`,phone,address from tableB where ...
Top