1、SELECT b_time,hour(b_time),UNIX_TIMESTAMP(CONCAT(date,' ',b_time)),CONCAT(date,' ',b_time) FROM `kao` WHERE name='Grant.Swaisland';
注释:hour()函数获取当前时间的小时 ; UNIX_TIMESTAMP()将字符串时间转换为时间戳;CONCAT()连接两个字符串合成一个新的字符串。
2、select UNIX_TIMESTAMP(CONCAT(SUBSTRING_INDEX(date,' ',1),' ',b_time)) as B_TIME FROM abc;
注释:substring_index(str,delim,count)
str:要处理的字符串
delim:分隔符
count:计数
例子:str=www.google.com
substring_index(str,'.',1)
结果是:www
substring_index(str,'.',2)
结果是:www.google
也就是说,如果count是正数,那么就是从左往右数,第N个分隔符的左边的全部内容
相反,如果是负数,那么就是从右边开始数,第N个分隔符右边的所有内容,如:
substring_index(str,'.',-2)
结果为:google.com
有人会为,如果我呀中间的的google怎么办?
很简单的,两个方向:
1、从右数第二个分隔符的右边全部,再从左数的第一个分隔符的左边:
substring_index(substring_index(str,'.',-2),‘.’,1);
3、select DATE_SUB(CONCAT(SUBSTRING_INDEX(date,' ',1),' ',b_time),INTERVAL 25 MINUTE) FROM abc;
注释:DATE_SUB() 从日期减去指定的时间间隔。
语法
DATE_SUB(date,INTERVAL expr type)
date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。
type 参数可以是下列值:
Type 值 |
---|
MICROSECOND |
SECOND |
MINUTE |
HOUR |
DAY |
WEEK |
MONTH |
QUARTER |
YEAR |
SECOND_MICROSECOND |
MINUTE_MICROSECOND |
MINUTE_SECOND |
HOUR_MICROSECOND |
HOUR_SECOND |
HOUR_MINUTE |
DAY_MICROSECOND |
DAY_SECOND |
DAY_MINUTE |
DAY_HOUR |
YEAR_MONTH |
4、select DATE_ADD(CONCAT(SUBSTRING_INDEX(date,' ',1),' ',e_time),INTERVAL 30 MINUTE) FROM abc;
注释:DATE_ADD() 从日期增加指定的时间间隔。
5、SELECT date,LA,TA,b_time,e_time,scholl from abc where UNIX_TIMESTAMP(date) > UNIX_TIMESTAMP('2016/4/1 0:00') and UNIX_TIMESTAMP(date) < UNIX_TIMESTAMP('2016/4/30 0:00') and scholl not REGEXP ('南京|合肥|重庆|沈阳|郑州|鞍山|大同|三亚|石家庄|珠海|南昌|辽阳|镇江|呼和浩特|长沙|大连|泰州|广州|临沂');
注释:REGEXP() like要求整个数据都要匹配,而REGEXP只需要部分匹配即可。
也就是说,用Like,必须这个字段的所有内容满足条件,而REGEXP只需要有任何一个片段满足即可。使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词)。
7、CREATE TABLE s_kaoqin SELECT DISTINCT REPLACE(name,'.',' ') as neme,`subject`,date,time,address FROM `kaoqin`;
注释:把查询结果生成一个新表