SqlServer與MySQL函數對應表

最近數據庫從SqlServer換爲MySQL,有一些函數兩個數據庫不一樣,把不一樣的函數記錄一下方便以後再用

方法作用 SqlServer MySQL
獲取兩個日期間隔 DATEDIFF(datepart,startdate,enddate) TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
獲取系統時間 GATADATA() SYSDATE()
函數用於返回日期/時間的單獨部分 DATEPART(datepart,date) datepart(date) {例:year(2019:03:25)輸出:2019}
獲取結果前幾名 select top num … 末尾加limit num
函數在日期中添加或減去指定的時間間隔 DATEADD(datepart,number,date) DATE_ADD(date,INTERVAL expr type) ,DATE_SUB(date,INTERVAL expr type)

記錄幾條MySQL查詢語句

查詢0-29的數字
MySQL
SELECT @xi:=@xi+1 as number from 
    (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5) xc1, 
		(SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 ) xc2,
		(SELECT 1) xc3,   
		(SELECT @xi:=-1) xc0 
SqlServer
SELECT number FROM MASTER..spt_values WHERE TYPE = 'P' AND number >= 0 AND number <= 31 
獲取當前月的第一天
MySQL
SELECT concat(date_format(LAST_DAY(now()),'%Y-%m-'),'01')day
SqlServer
SELECT substring( CONVERT ( VARCHAR, GETDATE ( ), 120 ), 1, 7 ) + '-01' DAY

再記錄一個神奇的錯誤

TIMESTAMPDIFF( MONTH,u.RegistTime, SYSDATE( ) ) = 0 
使用這個函數的時候,sysdate左邊的空格沒消除,一直報1630錯誤,查了之後才知道函數與參數間出現空格會報1630異常。
所以敲空格需謹慎!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章