di305449473
MSSQL转Mysql常用

一、字段类型
MSSQL                            Mysql                                备注
"nchar"                          "char()"                             最大长度为255
"nvarchar"                       "varchar":
"uniqueidentifier"               "varchar(36)"                        默认值:uuid() 代表唯一值GUID
"image"                          "mediumblob"
"money","smallmoney"             "decimal(11,2)"

二、函数
MSSQL                            Mysql                                备注
getdate()                        NOW()                                当前时间
@@ROWCOUNT                       ROW_COUNT()                          影响行数
len()                            CHAR_LENGTH()                        字符长度
DATALENGTH()                     LENGTH()                             字节长度,mssql一个汉字2个字节,mysql一个汉字3个字节
\'Li\'+\'Di\'                        CONCAT(\'Li\',\'Di\')                    字符串拼接
CHARINDEX(\'zh\', \'De_Zha\')        INSTR(\'De_Zha\',\'zh\')                 查找索引,mssql和mysql参数位置调换
CONVERT(varchar(6), \'5.00\')      CONVERT(\'5.00\',CHAR)                 类型转换,mssql和mysql参数位置调换,且mysql不支持varchar
ISNULL                           IFNULL                               判断字符串是否为空,参数一样
DATEPART(DAY,getdate())          DAY(NOW())                           取日期的单体数据,同理有YEAR,MONTH,HOUR,WEEKDAY等等
DATEDIFF(DAY,date1,date2)        TIMESTAMPDIFF(DAY,date1,date2)       取两个日期时间差,同理有YEAR,MONTH,HOUR,WEEK等等
dateadd(MONTH,1,getdate())       DATE_ADD(NOW(),INTERVAL 1 MONTH)     日期增加,同理Year,DAY,Hour等,mysql日期相减函数DATE_SUB()
identity(1,1)                    AUTO_INCREMENT                       自动增长列
bit类型字段col            convert(col,signed)            bit类型字段mysql直接查出来会有乱码,先要转换成数字型 三、其他(mysql语句必须以;结束) MSSQL Mysql 备注 DECLARE @a VARCHAR(
10) DECLARE a VARCHAR(10) 声明变量时,mysql不能带@符号,但是mysql可以不用declare声明变量,可以直接set @a=\'\',默认全局变量 SELECT top 10 * FROM A SELECT * FROM A LIMIT 0,10 取前10行数据 CREATE TABLE #G1DaySum CREATE TEMPORARY TABLE `G1DaySum` 创建临时表 CREATE PROCEDURE AA(a INT, b INT output) CREATE PROCEDURE AA(IN a INT, OUT b INT) 存储过程参数格式 IF() BEGIN END IF() THEN END IF if用法 WHILE() BEGIN END WHILE() DO END WHILE while用法

日期处理

【SQL SERVER】日期格式化
【MYSQL】Date和String的互相转换(DATE_FORMAT & STR_TO_DATE)


CONVERT(varchar(21) , GETDATE(), 120 )
to
DATE_FORMAT(NOW(),\'%Y-%m-%d %T\')

-- 20  \'%Y-%m-%d %T\'
-- 120 \'%Y-%m-%d %T\'
-- 102 \'%Y-%m-%d\'
-- 111 \'%Y/%m/%d\'
-- 112 \'%Y%m%d\'
-- 8   \'%T\'
-- 24  \'%T\'


-- vs中正则替换

convert(VarChar(20), max(BudgetDate),120)
转换
DATE_FORMAT(max(BudgetDate),\'%Y/%m/%d\')
查找内容
CONVERT\(varchar(.*), (.*),120\)
替换为
DATE_FORMAT($2,\'%Y/%m/%d\')

convert\(varchar\((\d*)\),(.*),121\)
DATE_FORMAT($2,\'%Y-%m-%d %T\')
------------------------------------------
MSSQL
Convert(int,\'03\')
MySQL
Convert(\'03\',SIGNED)
------------------------------------------
dateadd(day, -1, getdate())
转换
DATE_ADD(NOW(),INTERVAL -1 DAY)
正则
dateadd\(day,(.*),(.*)\)
替换为
date_add($2,interval $1 day)
------------------------------------------
CAST(200.126 AS money)
CAST(200.126 AS DECIMAL(10,2))

常用语句


-- 分页
-- sqlserver
select row_number() over(order by date) rnumber from ttable;
-- mysql
select (@rownum := @rownum + 1) rnumber from ttable,(select @rownum := 0) b order by date;

-- 统计
select sum(amt) over() as amt from ttable;
select (@amt := @amt + amt) as amt from ttable,(@amt := 0) b 
 

 

分类:

技术点:

相关文章:

  • 2022-01-29
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-01-16
  • 2022-01-03
  • 2022-12-23
  • 2022-02-23
  • 2022-02-26
  • 2021-12-26
相关资源
相似解决方案