mysql相关
data_sub:用于对某一日期进行加减某一时间间隔
DATE_SUB(date,INTERVAL expr type)
data: 时间字符串
expr: 时间间隔段,可以为负
type:
YEAR 年 YY
MONTH 月 MM
DAY 日 DD
HOUR 时 hh
MINUTE 分 mm
SECOND 秒 ss
YEAR_MONTH 年和月 YY和MM之间用任意符号隔开
DAY_HOUR 日和小时 DD和hh之间用任意符号隔开
DAY_MINUTE 日和分钟 DD和mm之间用任意符号隔开
DAY_SECOND 日和秒钟 DD和ss之间用任意符号隔开
HOUR_MINUTE 时和分 hh和mm之间用任意符号隔开
HOUR_SECOND 时和秒 hh和ss之间用任意符号隔开
MINUTE_SECOND 分和秒 mm和ss之间用任意符号隔开
具体使用:
DATE_SUB('2018-10-11',INTERVAL 1 month) '2018-09-11'
DATE_SUB('2018-10-11',INTERVAL -1 month) '2018-11-11'
DATE_SUB('2018-10-11',INTERVAL '-1 -1' YEAR_MONTH) '2019-11-11'
type只能使用已有的一项,不能混合使用 双日期时后一项负号无用
concat:用于字符串连接,可以多项
// 只要其中一个是NULL,那么将返回NULL
CONCAT(string1,string2,…)
// 第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。
// 分隔符可以是一个字符串,也可以是其它参数。
// 如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值
// 后续的null只影响当前的一个拼接
CONCAT_WS(separator,str1,str2,...)
insert into select from:插入时需要联结其它表和本地数据:
INSERT INTO TABLE1 (COLUMN1, COLUMN2)
SELECT now(),id FROM TABLE2 WHERE id=1
// 或者
INSERT INTO TABLE1 (COLUMN1, COLUMN2)
VALUES (value1,
(SELECT COLUMN_TABLE2 FROM TABLE2 WHERE COLUMN_TABLE2 like "blabla"));
插入主键重复转更新:
INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;
取日期函数:
year(date) 返回年份
month(date) 返回月份
week(date) 返回第几周数
day(date) 返回每月号数
在group by按日期分组时比较好用,如按周分组,group by concat(year(date),week(date)) 按拼接后的年和周数保证唯一性进行分组即可
浙公网安备 33010602011771号