MySQL更换瀚高语法更换
- 一、前言
- 二、语句
一、前言
水一篇,mysql更换瀚高之后,一些需要更换的语法介绍
>
二、语句
MySQL | 瀚高 | MySQL用法 | 瀚高用法 | 说明 |
---|---|---|---|---|
ifnull(x,y) | coalesce(x,y) | 相同 | 相同 | 用于检查两个表达式并返回第一个非空表达式。如果第一个表达式不是 NULL,则返回第一个表达式的值;如果第一个表达式是 NULL,则返回第二个表达式的值。x和y都可以为数字,函数或表达式子,例如sum(),count()等 |
date_format(create_time, ‘%Y-%m-%d’) | to_char(create_time,‘YYYY-MM-DD’) | select * from table where date_format(create_time, '%Y') = '2024'; | select * from table where to_char(create_time, 'YYYY') = '2024'; | 从日期字段中提取并格式化日期信息的。 |
sysdate() | now() | 相同 | 相同 | 返回当前的日期和时间。 |
substring_index(string, delimiter, count) | split_part(string, delimiter, field) | string:要提取子字符串的原始字符串。delimiter:分隔符,用于确定子字符串的位置。count:指定要返回的子字符串的数量。如果为正数,则从字符串的起始位置开始计数;如果为负数,则从字符串的末尾开始计数。特点:如果指定的分隔符在字符串中不存在,或者出现次数超过实际分隔符的出现次数,substring_index函数将返回整个原始字符串。此外,如果指定的分隔符是空字符串(“”),则将返回整个字符串的副本 | string:要分割的字符串。delimiter:分隔符。field:要返回的子串的位置(从1开始计数)。特点:如果指定的字段索引超出了实际分割后的段数,split_part将返回空字符串。如果分隔符不存在于字符串中,且字段索引为1,则返回整个字符串。 | 用于分割字符串的函数。 |
format(x,y) | round(x,y) | format() 函数的用途更广泛,它不仅可以用来格式化数字,还可以用来格式化字符串、日期等数据类型。在某些环境中,format() 用于将数字转换成具有特定格式的字符串,例如添加千位分隔符、货币符号、小数点等。 | round() 函数通常用于将数值四舍五入到指定的小数位数。 | 当都进行格式化数字时MySQL:select format('123.456',2); 返回123.46 ,当参数为123456 时返回123456.00 ,瀚高: select round('123.456',2); 返回123.46 当参数为123456 时返回123456 |
date_sub(date, interval) | (date, interval) | select date_sub('2024-09-09 09:09:09', interval 3 month); 结果为2024-06-09 09:09:09 | select ('2024-09-09 09:09:09'::timestamp - interval 3 month); 结果为2024-06-09 09:09:09.000000 | 从一个日期时间值中减去指定的时间间隔 |
year(now()) | extract(year from now()) | select year(now()); | select extract(year from now()); | 获取当前年份 |
month(now()) | extract(month from now()) | select month(now()); | select extract(month from now()); | 获取当前月份 |
week(now()) | extract(week from now()) | select week(now(),1) ,WEEK()函数有一个可选的模式参数,它决定了一周的开始日是星期几,以及如何计算一年中的第一周。如果没有指定模式,WEEK()默认使用模式0,即一周的第一天是星期日,并且一年中的第一周是包含1月1日的那一周 | select extract(week from now()) ,默认使用ISO周日期标准(即一周的第一天是星期一) | 获取当前周 |
quarter(now()) | extract(quarterfrom now()) | select quarter(now()); | select extract(quarter from now()); | 获取当前季度 |
select (@i :=@i + 1) | row_number() over (order by column asc) | select format((@i :=@i + 1),0) as sort from table ,(select @i:=0) r | select row_number() over (order by column asc) as sort from table; ,order by column asc可以省略,让其使用默认的排序规则 | 获取排序号 |