函数名 | 说明 |
---|---|
CURDATE() / CURTIME() | 返回当前日期(年-月-日) / 返回当前时间(时:分:秒) |
NOW() | 当前当前的日期和时间(年-月-日 时:分:秒) |
DATE_FORMAT(date,fmt) | 按照fmt的格式,对日期date进行格式化 (例:只截取年月 date_format( ‘2021-06-12’, “%Y%m” )) |
SEC_TO_TIME(seconds) | 把秒数转换成为时分秒(小时:分:秒) |
TIME_TO_SEC | 把时分秒转换为秒数 |
DATEIFF(data1,data2) | 返回date1和date2两个日期相差的天数 |
DATE_ADD(date,INTERVAL expr int) | 对给定的日期增加 或 减少指定的时间单元(unit day天/hour 小时/ minutes 分钟 / second 秒 ) |
DATE_ADD(date,INTERVAL expr type) | 对给定的日期减少 ,(跟add相反) |
EXTRACT(unit FROM date) | 返回日期date的指定部分 |
fmt格式:
%Y - 代表年 ,%m: 月份(0-12) , %d :天(0-31), %H : 小时(0-24) , %i : 分钟(0-59) , %s: 秒(0-59)
获取当前时间、实时时间日期、相差天数
SELECT CURdate() as '当前日期(年-月-日)' ,CURTIME() as '当前时间(时:分:秒)',now() as '当前日期时间(年-月-日 时:分:秒)', SEC_TO_TIME(120) as '秒数转时分秒', DATE_FORMAT('2021-06-12','%Y') as '日期格式化', DATEDIFF('2021-06-15','2021-06-12') as '日期相差天数'
计算每门课程,上线时间距当前时间的天数
select dateiff(now(), online_time ) as diff_day from imc_course
操作当前时间增加一天、减少一天、增加一年等操作
#当前时间日期加1天
select now(), date_add(now(),INTERVAL 1 day)#当前时间日期加1年
select now(), date_add(now(),INTERVAL 1 year)#当前时间日期减一天
select now(), date_add(now(),INTERVAL -1 day)
select now(), DATE_SUB(now(),INTERVAL 1 day) #效果同理(只是不加-符号)#当前时间日期减1小时30分
select now(), date_add(now(),INTERVAL '-1:30' HOUR_MINUTE)
提取时间和格式化日期的区别
#格式化获取
select now(),date_format(now(), "%Y") as '获取年',date_format(now(), "%m") as '获取月份',date_format(now(), "%Y H:i:s") as '获取年 时分秒'#提取日期
select now(), extract(YEAR from now() ) as '提取当前时间的年',Extract(MONTH from now() ) as '提取出月份',extract(day from now()) as '提取日期',
函数名 | 说明 |
---|---|
UNIX_TIMESTAMP() | 【日期转时间戳】返回unix时间戳(从1970年起~当前今开发的秒数) |
FROM_UNIXTIME() | 【时间戳转日期】把Unix时间转化日期时间 |
很多开发比较喜欢日期用unix时间戳
形式来存储。,因为大家都认为时间戳
是整数类型来保存日期数据性能会更好。
其实现在看来,这种方式也存在一些问题。unix时间戳必须经过转化才能显示日期。使用起来并不方便(不太推荐),好在mysql提供2个函数,可以时间戳转日期格式(相互转化)。
select UNIX_TIMESTAMP('2018-12-25 12:25:00');
#结果:1545711900select FROM_UNIXTIME(1545711900);
#结果:2018-12-25 12:25:00
CONCAT(str1,str2,...) | 【拼接】把字符串str1,str2连接成一个字符串来显示 |
---|---|
CONCAT_WS(sep,str1,str2,...) | 【拼接】用指定的分隔符sep连接字符串 |
CHAR_LENGTH(str) | 【判断长度】返回字符串str的字符个数 |
LENGTH(str) | 【判断长度】返回字符串str的字节个数 |
FORMAT(X,D[,locale]) | 【截取】将数字N格式化为格式,如“#,##,###.###” 并舍入到D位小数 |
LEFT(str,len) / RIGHT(str,len) | 【截取】从字符串的左/右边起返回len长度的子字符串 |
SUBSTRING(str,pos,[len]) | 【截取】从字符串str的pos位置起返回字符长度为len的字符串 |
SUBSTRING_INDEX(str,delim,count) | 【分隔符截取】返回字符串str按delim分隔的前count个子字符串 |
LOCATE(substr,str) | 【截取】在字符串str中返回子串substr第一次出现的位置 |
TRIM([remstr FROM str]) | 【去除】从字符串str两端删除不需要的字符remstr |
函数名 | 说明 |
---|---|
ROUND(X,D) | 对数值X进行四舍五入保留D位小数 |
RAND() | 返回一个在0和1之间的随机数 (不推荐,特别是存量大数据表,性能差) |
CASE WHEN [condition] THEN result [ WHEN [condition] THEN result …] [ ELSE result] END | 用于实现其他语言的case…when功能,提供数据流程控制 |
MD5 | 返回str的MD5值 |
FIND_IN_SET(str,strlist) | 获取字段内要查询的字符串 |
REPLACE | 字段字符串匹配替换 |
上一篇:Linux Head命令如何使用?LinuxSRE课程
下一篇:PHP中流的理解