MSSQL轉Mysql經常使用函數,語法等

MSSQL轉Mysql經常使用

1、字段類型
MSSQL                            Mysql                                備註
"nchar"                          "char()"                             最大長度爲255
"nvarchar"                       "varchar":
"uniqueidentifier"               "varchar(36)"                        默認值:uuid() 表明惟一值GUID
"image"                          "mediumblob"
"money","smallmoney"             "decimal(11,2)"

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直接查出來會有亂碼,先要轉換成數字型 3、其餘(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)html

 
 
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 
相關文章
相關標籤/搜索