Oracle中的內建函式在sql中的轉換整理

2021-08-27 13:39:48 字數 1367 閱讀 4778

程式裡面經常會即支援oracle資料庫,又支援sql資料庫。而有些oracle內建函式用的比較多,但在sql中語法有些不同,我做了些整理,希望可以幫助大家。。。。

1.oracle中的內建函式:

oracle 中的round函式(四捨五入)(sql也可以用)

oracle 中的trunc返回的是當天日期的[00:00:00]

oracle 中的floor,floor(n)取小於等於數值n的最大整數(sql也可以用)

oracle 中的length函式 sqlserver中是len

oracle 中的datalength函式 sqlserver中是datalength

oracle 中的lob_to_char函式 改為convert(char,opertime,120)

oracle 中的to_char函式 改為convert(char,opertime,120)

oracle 中的substr函式 改為substring

例如:select convert(char, getdate(), 120) --yyyy-mm-dd hh:mm:ss(24h)

convert(char,submittime,120)= convert(char,getdate(),120)

oracle 中floor(sysdate - trunc(opertime)改為 datediff(dd,convert(varchar(100),inputdate,111),convert(varchar(100),getdate(),111))

oracle 中的dbms_lob.getlength改為datalength(sqlserver資料庫中把clob型別改為ntext型別)

oracle 中的 rownum改為row_number() over(order by xx)並且sql語句中必須帶有top

例如:sql中的寫法:

select * from (

select a.*, row_number() over(order by a.matterid ) as rn from (

select * from attachment_t ) a

)t where rn <= 20 and rn >=0

2.oacle系統表 dual

證對sqlserver直接去掉dual

3.遇到的錯誤以及解決方法:

sqldatetime 溢位。必須介於 1/1/1753 12:00:00 am 和 12/31/9999 11:59:59 pm 之間

修改model裡面的建構函式,給屬性賦值為datetime型別

elementcontent_model,operlog_model

Oracle中的內建函式在sql中的轉換整理

程式裡面經常會即支援oracle資料庫,又支援sql資料庫。而有些oracle內建函式用的比較多,但在sql中語法有些不同,我做了些整理,希望可以幫助大家。1.oracle中的內建函式 oracle 中的round函式 四捨五入 sql也可以用 oracle 中的trunc返回的是當天日期的 00 ...

Oracle內建函式

1.數值函式 floor n 小於等於數值n的最大整數 2.5 2 mod m,n m除以n的餘數 2 7 2 power m,n m的n次方 2 3 8 round n,m 將n四捨五入,保留小數點後m位 3.4 3 sign n n 0返回0,n 0返回1,n 0返回 1 8 1 sqrt n ...

oracle 內建函式

單行函式 查詢表檢視時每行返回乙個結果 集合函式 多行記錄返回乙個結果 取絕對值,如果引數可以隱式轉化為數值也能使用 select abs 100 abs 100 from dual 取餘select mod 10,3 mod 10 3 from dual 符號函式,大於0返回1 否則0 selec...