mysql函数与oracle函数异同

日期函数:

oracle trunc(date, format)  日期截取
mysql dateformat(d, f)  日期格式化 extract(type from d) mysql 从d中获取type指定返回的值
oracle days_between(date1, date2) 给出date1-date2的天数 months_between(date1, date2) 给出date1-date2的月份 round(to_number(date2 - date1)) 日期之间差值
mysql datediff(d1,d2) d1,d2相隔天数 period_diff(period1, period2) 两个时段之间的月份差值 timediff(time1, time2) 时间差值 timestampdiff(unit, d1, d2) 返回d2-d1的时间差
oracle add_days(date, n) 增加或减去天数 add_months(date, n) 增加或减去月份 add_years(date, n) 增加或减去年份 greatest(date1,date2[,date3]...) 返回最晚日期 least(date1,date2[,date3]...) 返回最早日期 last_day(d) 日期那一月份的最后一天
mysql adddate(d,n) 起始日期d加上n天 addtime(t,n) 时间t加上时间表达式n date_add(d, INTERVAL expr type) 起始日期d加上一个时间段后的日期 date_sub(date, INTERVAL expr type) 日期减去指定的时间间隔 last_day(d) 日期那一月份的最后一天 period_add(period, number) 年月组合日期添加一个时段 subdate(d,n) 日期d减去n天后的日期 subtime(t,n) 时间t减去n秒的时间
字符串函数:

oracle length(str) 返回字符串长度
mysql char_length(s) 或 character_length(s) 返回字符串s的字符数
oracle concat(str1, str2) 或者 || 连接字符串
mysql concat(s1,s2...sn) 字符串s1,s2等多个字符串合并为一个字符
oracle substr(str, start, count) 字符串截取,从start开始,取count个
mysql substr(s,start,length) 或 substring(s,start,length) 字符串截取,从start开始,取length个
oracle nvl(exp1, exp2) 空值转化 exp1不为空,返回exp1,否则返回exp2 coalesce(exp1,exp2,...,expn) 返回第一个非空表达式 nvl2(ex1,ex2,ex3) 如果ex1不为null,返回ex2,否则返回ex3
mysql ifnull(v1,v2) v1的值不为null,返回v1,否则返回v2 coalesce(exp1,exp2,...,expn) 返回第一个非空表达式 if(expr,v1,v2) 表达式expr成立,返回v1,否则返回v2
oracle LISTAGG(name,',') WITHIN GROUP (ORDER BY ...) 列转行
mysql group_concat(name) 列转行
oracle INSTR(c1,c2,i,j) 在字符串c1中搜索指定的字符串c2,起始位置i,默认为1,出现位置j,默认为1,返回出现指定字符的位置
mysql FIND_IN_SET(s1,s2) 返回s2中与s1匹配的字符串的位置
oracle REGEXP_SUBSTR(str,regexp,1,1,'c') 正则截取字符串 REGEXP_REPLACE 正则替换字符串 replace(str,s1,s2) 将字符串s2替代字符串str中的字符串s1
mysql 使用REGEXP关键字进行正则匹配 replace(s,s1,s2) 将字符串s2替代字符串s中的字符串s1
oracle 递归函数 start with t.id=100 connect by prior t.pid = t.id 递归查询向上,t.id=t.pid 递归查询向下
mysql 递归函数 WITH RECURSIVE
数据类型转换:

oracle使用TO_CHAR、TO_NUMBER、TO_DATE等显示转换 CONVERT(c,dset,sset) 将字符串c从字符集sset转换到字符集dset
mysql 使用隐式转换,也提供CAST(x AS type) 转换数据类型 和 CONVERT(s USING cs) 将字符串s的字符集变成cs
窗口函数:

oracle ROW_NUMBER() OVER (ORDER BY column) 顺序排名 RANK() OVER (ORDER BY column) 排名 DENSE RANK() OVER (ORDER BY column) 密集排名
mysql ROW_NUMBER() OVER (ORDER BY column) 顺序排名 RANK() OVER (ORDER BY column) 排名 DENSE_RANK() OVER (ORDER BY column) 密集排名

参考:
Oracle中TRUNC()函数详解https://blog.csdn.net/moon_ly/article/details/142682386
Oracle 常用函数大全https://blog.csdn.net/demo_yo/article/details/138319795
Mysql与Oracle语法差异大盘点https://blog.csdn.net/demo_yo/article/details/138319795
Mysql与Oracle函数差异以及SQL对比https://blog.csdn.net/weixin_42559574/article/details/129943227
oracle中的nvl,nvl2等参数https://blog.csdn.net/jackyrongvip/article/details/84515312
Oracle应用文档https://docs.oracle.com/cd/A60725_05/html/comnls/us/per/ffugax15.htm
oracle计算时间差https://www.cnblogs.com/buguge/p/11025365.html
oracle递归函数startwith https://blog.csdn.net/tanx17/article/details/108683534
mysql数据库递归函数https://cloud.tencent.com/developer/information/mysql%E6%95%B0%E6%8D%AE%E5%BA%93%E9%80%92%E5%BD%92%E5%87%BD%E6%95%B0
开窗函数ROW_NUMBER()OVER()https://blog.csdn.net/weixin_46574678/article/details/135675698
菜鸟教程MySQL函数https://www.runoob.com/mysql/mysql-functions.html

百度文库Oracle函数大全https://wenku.baidu.com/view/69645476d2d233d4b14e852458fb770bf68a3bbf.html
百度文库AI生成的Oracle与MySQL函数异同对比文档链接: https://pan.baidu.com/s/1fGVbcb7dqBs5rMYREpSAWw 提取码: dh2h

AI生成2分钟,我搞了几个2小时,不得不说,有些事,得认。。。

posted @ 2025-08-23 22:21  我爱大乔  阅读(8)  评论(0)    收藏  举报