oracle能提高查询时间的语句,Oracle 日期查询SQL语句

1、查询现在时刻

SQL 代码复制内容到剪贴板

selectsysdatefromdual

结果:2010-5-13 10:40:26

2、对日期型转换成字符串型,使用to_char函数

rameter

Explanation

YEAR

Year, spelled out

YYYY

4-digit year

YYY

YY

Y

Last 3, 2, or 1 digit(s) of year.

IYY

IY

I

Last 3, 2, or 1 digit(s) of ISO year.

IYYY

4-digit year based on the ISO standard

Q

Quarter of year (1, 2, 3, 4; JAN-MAR = 1).

MM

Month (01-12; JAN = 01).

MON

Abbreviated name of month.

MONTH

Name of month, padded with blanks to length of 9 characters.

RM

Roman numeral month (I-XII; JAN = I).

WW

Week of year (1-53) where week 1 starts on the first day of the year and continues to the seventh day of the year.

W

Week of month (1-5) where week 1 starts on the first day of the month and ends on the seventh.

IW

Week of year (1-52 or 1-53) based on the ISO standard.

D

Day of week (1-7).

DAY

Name of day.

DD

Day of month (1-31).

DDD

Day of year (1-366).

DY

Abbreviated name of day.

J

Julian day; the number of days since January 1, 4712 BC.

HH

Hour of day (1-12).

HH12

Hour of day (1-12).

HH24

Hour of day (0-23).

MI

Minute (0-59).

SS

Second (0-59).

SSSSS

Seconds past midnight (0-86399).

FF

Fractional seconds.

以24小时形式显示出来

XML/HTML 代码复制内容到剪贴板

select to_char(sysdate,'yyyymmdd hh24:mi:ss')

结果:20100513 10:40:45

相反的是to_date函数

3、某月的最后一天 用last_day函数

SQL 代码复制内容到剪贴板

selectlast_day(sysdate)fromdual

结果:2010-5-31 10:44:21

4、加法计算 +1即增加一天,如果精确到小时、分钟、秒则用除法

如:获得下月第一天时刻:

SQL 代码复制内容到剪贴板

selectlast_day(sysdate)+1fromdual

再如:获得一小时后时刻

SQL 代码复制内容到剪贴板

selectsysdate+1/24fromdual

再如:获得10秒后的时刻

SQL 代码复制内容到剪贴板

selectsysdate+1/24/60/60*10fromdual

5、获得下一星期几的日期 使用next_day函数

如现在要获得下个星期一的日期:

SQL 代码复制内容到剪贴板

selectnext_day(sysdate,2)fromdual

注意这里是2,为什么是2?因为这里有效的值是1-7,而1表示星期日,2表示星期一……以此类推到星期六。

6、获得某年、某月的第一天,或者某天的0点整时刻 使用trunc函数

SQL 代码复制内容到剪贴板

selectTRUNC(sysdate,'YYYY')fromdual

结果:2010-01-01

SQL 代码复制内容到剪贴板

selectTRUNC(sysdate,'MM')fromdual

结果:2010-05-01

SQL 代码复制内容到剪贴板

selectTRUNC(sysdate)fromdual

结果:2010-05-13 (今天)

SQL 代码复制内容到剪贴板

selectTRUNC(sysdate,'HH')fromdual

结果:2010-05-13 10:00:00 (现在是10点多)

7、使用add_months可以以当前日期为基准查询上几月、下几月的日期

SQL 代码复制内容到剪贴板

selectadd_months(sysdate,-1)fromdual

负数表示查询上n月

如果要查上一年,则是-12,并没有单独的add_years函数!

再想:如果要查上一周,有没有特殊函数可提供?没有,一周就是7天嘛,所以查询语句为:

SQL 代码复制内容到剪贴板

selectsysdate-7fromdual

综述:通过上面的汇总,应该能应付一般的SQL查询日期的应用了。一般情况下要综合上面所说的多个查询才能得出自己想要的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值