数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
oracle 日期函数介绍

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

 在oracle中有很多关于日期的函数,如:
1、add_months()用于从一个日期值增加或减少一些月份
date_value:=add_months(date_value,number_of_months)
例:
SQL> select add_months(sysdate,12) "Next Year" from dual;
  
Next Year
----------
13-11月-04
  
SQL> select add_months(sysdate,112) "Last Year" from dual;
  
Last Year
----------
13-3月 -13
  
SQL>  
  
2、current_date()返回当前会放时区中的当前日期
date_value:=current_date
SQL> column sessiontimezone for a15
SQL> select sessiontimezone,current_date from dual;
  
SESSIONTIMEZONE CURRENT_DA
--------------- ----------
+08:00          13-11月-03
  
SQL> alter session set time_zone='-11:00'
   2  /
  
会话已更改。
  
SQL> select sessiontimezone,current_timestamp from dual;
  
SESSIONTIMEZONE CURRENT_TIMESTAMP
--------------- ------------------------------------
-11:00          12-11月-03 04.59.13.668000 下午 -11:
                 00
  
SQL>  
  
3、current_timestamp()以timestamp with time zone数据类型返回当前会放时区中的当前日期
timestamp_with_time_zone_value:=current_timestamp([timestamp_precision])
SQL> column sessiontimezone for a15
SQL> column current_timestamp format a36
SQL> select sessiontimezone,current_timestamp from dual;
  
SESSIONTIMEZONE CURRENT_TIMESTAMP
--------------- ------------------------------------
+08:00          13-11月-03 11.56.28.160000 上午 +08:
                 00
  
SQL> alter session set time_zone='-11:00'
   2  /
  
会话已更改。
  
SQL> select sessiontimezone,current_timestamp from dual;
  
SESSIONTIMEZONE CURRENT_TIMESTAMP
--------------- ------------------------------------
-11:00          12-11月-03 04.58.00.243000 下午 -11:
                 00
  
SQL>  
  
4、dbtimezone()返回时区
varchar_value:=dbtimezone
SQL> select dbtimezone from dual;
  
DBTIME
------
-07:00
  
SQL>  
  
5、extract()找出日期或间隔值的字段值
date_value:=extract(date_field from [datetime_value|interval_value])
SQL> select extract(month from sysdate) "This Month" from dual;
  
This Month
----------
         11
  
SQL> select extract(year from add_months(sysdate,36)) "3 Years Out" from dual;
  
3 Years Out
-----------
        2006
  
SQL>  
  
6、last_day()返回包含了日期参数的月份的最后一天的日期
date_value:=last_day(date_value)
SQL> select last_day(date'2000-02-01') "Leap Yr?" from dual;
  
Leap Yr?
----------
29-2月 -00
  
SQL> select last_day(sysdate) "Last day of this month" from dual;
  
Last day o
----------
30-11月-03
  
SQL>  
  
7、localtimestamp()返回会话中的日期和时间
timestamp_value:=localtimestamp
SQL> column localtimestamp format a28
SQL> select localtimestamp from dual;
  
LOCALTIMESTAMP
----------------------------
13-11月-03 12.09.15.433000
下午
  
SQL> select localtimestamp,current_timestamp from dual;
  
LOCALTIMESTAMP               CURRENT_TIMESTAMP
---------------------------- ------------------------------------
13-11月-03 12.09.31.006000   13-11月-03 12.09.31.006000 下午 +08:
下午                         00
  
SQL> alter session set time_zone='-11:00';
  
会话已更改。
  
SQL> select localtimestamp,to_char(sysdate,'DD-MM-YYYY HH:MI:SS AM') "SYSDATE" from dual;
  
LOCALTIMESTAMP               SYSDATE
---------------------------- ------------------------
12-11月-03 05.11.31.259000   13-11-2003 12:11:31 下午
下午
  
SQL>  
  
8、months_between()判断两个日期之间的月份数量
number_value:=months_between(date_value,date_value)
SQL> select months_between(sysdate,date'1971-05-18') from dual;
  
MONTHS_BETWEEN(SYSDATE,DATE'1971-05-18')
----------------------------------------
                               389.855143
  
SQL> select months_between(sysdate,date'2001-01-01') from dual;
  
MONTHS_BETWEEN(SYSDATE,DATE'2001-01-01')
----------------------------------------
                               34.4035409
  
SQL>  
  
9、next_day()给定一个日期值,返回由第二个参数指出的日子第一次出现在的日期值(应返回相应日子的名称字符串)

本文参考oracle中国联盟


相关文章

相关软件