1. 程式人生 > >Oracle、MySql、SqlServer三者查詢語句對比

Oracle、MySql、SqlServer三者查詢語句對比

Oracle

   jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:test
分頁

     select * from
     (select t.*,rownum as rowno from TABLE1 )
     where rowno between 10 and 20

時間格式

    select now();
    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual;   //日期轉化為字串   
    select to_char(sysdate,'yyyy') as nowYear   from dual;   //獲取時間的年   
    select to_char(sysdate,'mm')    as nowMonth from dual;   //獲取時間的月   
    select to_char(sysdate,'dd')    as nowDay    from dual;   //獲取時間的日   
    select to_char(sysdate,'hh24') as nowHour   from dual;   //獲取時間的時   
    select to_char(sysdate,'mi')    as nowMinute from dual;   //獲取時間的分   
    select to_char(sysdate,'ss')    as nowSecond from dual;   //獲取時間的秒
    to_date 同樣

    日期+ 1 年          SYSDATE + INTERVAL '1' YEAR
    日期+ 1 月          SYSDATE + INTERVAL '1' MONTH
    日期+ 1 日          SYSDATE + INTERVAL '1' DAY
    日期+ 1 時          SYSDATE + INTERVAL '1' HOUR
    日期+ 1 分          SYSDATE + INTERVAL '1' MINUTE
    日期+ 1 秒          SYSDATE + INTERVAL '1' SECOND
    日期+ 1 日1 時1 分    SYSDATE + INTERVAL '1 1:1' DAY TO MINUTE
如果計算的是 DATE 型別,我們還可以採用如下的方式。

DATE+ 1 日          SYSDATE + 1
DATE+ 1 時          SYSDATE + 1/(1*24)
DATE+ 1 分          SYSDATE + 1/(1*24*60)
DATE+ 1 秒          SYSDATE + 1/(1*24*60*60)
DATE+ 1 日1 時1 分    SYSDATE + 1 + 1/(1*24) + 1/(1*24*60)

select (date '2015-04-10' - date '2014-03-11') from dual
MySql

jdbc.url=jdbc:mysql://127.0.0.1:3306/test
分頁

    select * from table WHERE … LIMIT 10; #返回前10行
    select * from table WHERE … LIMIT 0,10; #返回前10行
    select * from table WHERE … LIMIT 10,20; #返回第10-20行資料

時間格式

select date_format(now(),'%Y-%m-%d %h:%i:%s') as '日期'
select count(*) from table   where time >='2018-04-13 16:55:00'

select date_add(now(), interval 1 day); -- add 1 day
select date_add(now(), interval 1 hour); -- add 1 hour
select date_add(now(), interval 1 minute); -- ...
select date_add(now(), interval 1 second);
select date_add(now(), interval 1 microsecond);
select date_add(now(), interval 1 week);
select date_add(now(), interval 1 month);
select date_add(now(), interval 1 quarter);
select date_add(now(), interval 1 year);

select datediff('2008-08-08', '2008-08-01'); -- 7
select datediff('2008-08-01', '2008-08-08'); -- -7
select timediff('2008-08-08 08:08:08', '2008-08-08 00:00:00'); -- 08:08:08
select timediff('08:08:08', '00:00:00'); -- 08:08:08
注意:timediff(time1,time2) 函式的兩個引數型別必須相同。

SqlServer

jdbc.url=jdbc:sqlserver://127.0.0.1:1433;databasename=test
分頁

SELECT TOP 10 *  FROM table 
時間格式

    select convert(nvarchar(MAX), getdate(), 20);   '2018-09-26 15:44:10'
    Select CONVERT(varchar(100), getdate(), 23);    '2018-09-26'
    select CONVERT(varchar(12) , getdate(), 112 )   '20180926'
    Select CONVERT(varchar(100), getdate(), 24);    '15:44:10'
    Select CONVERT(varchar(100), getdate(), 8);     '15:44:10'

    SELECT *  FROM tablename WHERE   time>='2018/1/1 11:45:00'  ORDER BY  time
    SELECT *  FROM tablename WHERE   time>='2018-01-01 11:45:00'  ORDER BY  time

DateDiff (interval,date1,date2)   以interval 指定的方式,返回date2 與date1兩個日期之間的差值 date2-date1
DateAdd (interval,number,date)   以interval指定的方式,加上number之後的日期
DatePart (interval,date)    返回日期date中,interval指定部分所對應的整數值
DateName (interval,date)   返回日期date中,interval指定部分所對應的字串名稱
引數interval的設定值如下:
值縮寫(Sql Server) (Access 和 ASP) 說明

Year Yy yyyy 年 1753 ~ 9999
Quarter Qq q   季 1 ~ 4
Month Mm m   月1 ~ 12
Day of year Dy y  一年的日數,一年中的第幾日 1-366
Day Dd d   日,1-31
Weekday Dw w 一週的日數,一週中的第幾日 1-7
Week Wk ww  周,一年中的第幾周 0 ~ 51
Hour Hh h   時0 ~ 23
Minute Mi n  分鐘0 ~ 59
Second Ss s 秒 0 ~ 59
Millisecond Ms - 毫秒 0 ~ 999
Access 和Asp中用date()和now()取得系統日期時間;其中DateDiff,DateAdd,DatePart也同是能用於Access和asp中,這些函式的用法也類似。
SQL Server日期函式舉例

1.GetDate() 用於sql server :select GetDate()
2.DateDiff('s','2005-07-20','2005-7-25 22:56:32')返回值為 514592 秒
DateDiff('d','2005-07-20','2005-7-25 22:56:32')返回值為 5 天
3.DatePart('w','2005-7-25 22:56:32')返回值為 2 即星期一(週日為1,週六為7)
DatePart('d','2005-7-25 22:56:32')返回值為 25即25號
DatePart('y','2005-7-25 22:56:32')返回值為 206即這一年中第206天
DatePart('yyyy','2005-7-25 22:56:32')返回值為 2005即2005年
SqlDbx.exe

PLSQL Developer

MySQL Workbench 6.3 CE


sql與oracle函式比較已經經典的sql語句大全
這是sql與oracle函式比較已經經典的sql語句大全,裡面包含了Oracle常用函式與sql常用函式對比翻譯,oracle與sqlserver字元、時間函式的不同總結,SQLServer和Orac
--------------------- 
作者:tianruozhaomi 
來源:CSDN 
原文:https://blog.csdn.net/tianruozhaomi/article/details/82850047 
版權宣告:本文為博主原創文章,轉載請附上博文連結!