select * from test where id !=1 尽可能用 <> 替换 != mybatis的mapper中就使用 <> 或者使用转义: <![CDATA[ <> ]]>
SELECT DISTINCT(id) FROM table
两种书写格式 SELECT (CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其余' END) FROM TABLE ; SELECT (CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其余' END ) FROM TABLE ;
SELECT @id := @id + 1 AS id, a.* from (SELECT @id := 0) r,(SELECT * FROM s_bid )a
SELECT t.date as timeDate, COALESCE(t2.allCount,0) as allCount, COALESCE(t2.finishCount,0) as finishCount, COALESCE(t2.zaituCount,0) as zaituCount, COALESCE(t2.overTimeCount,0) as overTimeCount FROM (SELECT @cdate:= date_add(@cdate,interval - 1 day) as date , 0 as num FROM (SELECT @cdate:=date_add(CURDATE(),interval + 1 day) from `service_type` ) t1 WHERE @cdate > '2019-05-01' ) t LEFT JOIN (SELECT DATE_FORMAT(o.submit_time, '%Y-%m-%d') as timeDate,COUNT(o.`id`) as allCount,COUNT(o.`status` = '4' or null) as finishCount,COUNT(o. `status` !='4' or null) as zaituCount,COUNT(o.deal_overtime = 1 or null) as overTimeCount FROM work_order o left join service_type t on t.id = o.servicetype_id WHERE o.is_deleted = '0' and t.code='S001' and t.is_deleted='0' AND YEAR(o.submit_time) = 2019 AND MONTH(o.submit_time) = 5 GROUP BY timeDate ) t2 on t.date=t2.timeDate ORDER BY t.date
NOW() 返回当前的日期和时间 CURDATE() 返回当前的日期 CURRENT_DATE() CURTIME() 返回当前的时间 DATE() 提取日期或日期/时间表达式的日期部分 EXTRACT() 返回日期/时间按的单独部分 DATE_ADD() 给日期添加指定的时间间隔 DATE_SUB() 从日期减去指定的时间间隔 DATEDIFF() 返回两个日期之间的天数 DATE_FORMAT() 用不一样的格式显示日期/时间 %Y-%m-%d %H-%i-%s 分别表示 年-月-日 时-分-秒(mysql中) 做为区分如下是java中的日期格式 yyyy-MM-dd HH:mm:ss:SSS 分别表示:年-月-日 时-分-秒-毫秒 1.将字符串格式(char和vachar)转换为日期格式:str_to_date 2.将日期格式转换为字符串格式:date_format date_add(CURRENT_DATE(), interval -1 day) <![CDATA[ <= ]]> create_time DATE_ADD() 函数向日期添加指定的时间间隔。 DATE_ADD(date,INTERVAL expr type) date 参数是合法的日期表达式。expr 参数是您但愿添加的时间间隔。 <![CDATA[ <= ]]> : <= sql 防止转义
SELECT * FROM 表名 WHERE DATE_FORMAT( 时间字段名, '%Y%m' ) =DATE_FORMAT( CURDATE( ) , '%Y%m' ); 或者 SELECT * FROM 表名 WHERE DATE_FORMAT( 时间字段名, '%Y%m' ) =DATE_FORMAT( CURRENT_DATE(), '%Y%m' ); CURDATE( )和CURRENT_DATE()没有任何区别。
SELECT COUNT(id) FROM s_job_description WHERE TO_DAYS(create_time) = TO_DAYS(NOW())
其余:java
今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1 7天 SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名) 近30天 SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段名) 本月 SELECT * FROM 表名 WHERE DATE_FORMAT( 时间字段名, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' ) 上一月 SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( 时间字段名, '%Y%m' ) ) =1
SELECT CAST(123.123 AS INT),运行结果会报错。 SELECT CAST(123.123 AS DECIMAL(8,2)),运行结果为 123.12。 select id,CAST(type AS CHAR)as type from table,将int类型字段type转换为char类型。
SELECT COALESCE(null,1,2); 返回第一个非空值,运行结果为 1。