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。