您的位置:首页 > 数据库 > Oracle

Oracle、MySql、SqlServer三者查询语句对比

2018-09-26 16:56 615 查看

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: