一级女人毛片人一女人-一级女性大黄生活片免费-一级女性全黄久久生活片-一级女性全黄生活片免费-国产美女在线一区二区三区-国产美女在线观看

始創于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業
  • 60秒人工響應
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補償
您的位置: 網站首頁 > 幫助中心>文章內容

Oracle中怎樣查詢數據表的哪個字段是主鍵

發布時間:  2012/9/20 16:44:35

工作中要用到 Oracle 10g,經常要向其中的某張表插入事件發生的日期及時間。專門就 Oracle 的日期及時間顯示方式和插入方式記一筆。
像 Number,varchar2 等內置的數據類型一樣,Oracle 用 Date 這個內置的數據類型來存儲日期和時間。和 MS SQL Server 一樣,日期和時間是存儲在一個數據類型里的,沒有只存儲時間或只存儲日期的單獨的時間和日期數據類型。DATE 數據類型存儲年月日和時分秒。-
 


當顯示 DATE 類型的數據時,Oracle 先要把存儲的值從內部保存格式轉化為可輸出的字符串。通常,這種轉換是通過 TO_CHAR 這個函數來完成的。如果沒有用 TO_CHAR 函數來指定特定的日期時間格式,Oracle 默認的顯示格式是“DD-MON-YY”。

例如,我們創建了一個表 x:
create table abc(a int, b date);
然后我們執行下面的查詢語句:
select b from abc;
我們會看到如下結果(set head on):
B------------ 01-APR-09 (語言是英語) 或 B------------- 01-四月 -09 (語言是中文)
也就是說,每次顯示 DATE 類型的數值時,Oracle 會自動調用 TO_CHAR 函數,并以默認日期顯示格式為參數。我們可以顯式地調用 TO_CHAR 函數,并指定自己想要的格式。例如:

SELECT TO_CHAR(b, 'YYYY/MM/DD') AS b FROM abc;

返回的結果是:

B------------ 2010/09/01
TO_CHAR 是個很強大的函數,可以把 Date,MLSLABEL,Number 類型的數據按指定的格式轉換為 VARCHAR2 類型的數據,我們在這里只關心日期時間的轉換。語法:

TO_CHAR(d [, fmt [, 'nlsparams'] ])

d 是 Date 類型的變量,fmt 是我們指定的日期時間格式,如果不顯式指定就用 Oracle 的默認值。 fmt 里常用的跟日期時間有關的占位符如下:

MM 用數字表示的月份(例如,07)
MON 縮寫的月份名稱(例如,JUL)
MONTH 完整的月份名稱(例如,JULY)
DD 日期(例如, 24)
DY 星期幾的縮寫(例如,FRI)
YYYY 用4位表示的年份(例如, 2008)
YY 用2位表示的年份,取年份的后兩位(例如,08)
RR 跟 YY 類似,但兩位表示的年份被近似到 1950 到 2049 這個范圍里的年份,例如 06 被認為是 2006,而不是 1906
AM (或 PM) 上下午指示符
HH 12進制表示的時間(1-12)
HH24 24進制表示的時間(0-23)
MI 分鐘(0-59)
SS 秒(0-59)
以上講的是利用 TO_CHAR 函數來顯示 DATE 類型的數據,下面講講如何向表里插入一個 Date 類型的數值。這時我們要用到 TO_DATE 這個函數,把字符串表示的日期轉換為 Date 類型。

跟 Oracle 顯示日期時間時會隱性調用 TO_CHAR 函數一樣,當 Oracle 期望一個 Date 類型的值時,它會隱性調用 TO_DATE 函數來轉換輸入的字符串,依據的默認格式是“DD-MON-YY”。

還是以我們的 x 表為例,我們可以直接輸入:

insert into abc values(99, '31-may-08');
但是,在顯示時不管用什么格式都不會影響我們實際儲存的數據;在插入時,單純采用 Oracle 的默認格式就不是那么符合工作需要了,我們還是需要顯式調用 TO_DATE 函數,例如:

insert into abc values(99, to_date('2008/05/31:12:00:00AM', 'yyyy/mm/dd:hh:mi:ssam'));
TO_DATE 函數的語法:

TO_DATE(char [, fmt [, 'nlsparams'] ])

char 是表示日期和時間的字符串。fmt 的表示方法和 TO_CHAR 函數一樣。

我們前面一直提到 Oracle 默認的日期時間格式是“DD-MON-YY”,其實,我們還可以修改這個默認格式,把它改成我們需要的格式。在 SQL*plus 里面輸入下面的命令:

alter session set NLS_DATE_FORMAT='<my_format>';   ——這個改變只對當前的會話(session)有用。

例如:

SQL> alter   session   set   nls_date_format='yyyy-mm-dd';會話已更改。SQL> insert  into  abc (b)  values('2004-08-26');已創建1行。

--------------------------------------------------------------------------------
用 Oracle 內置的函數 SYSDATE 可以返回系統當前的日期和時間,例如:
select to_char(sysdate, 'Dy DD-Mon-YYYY HH24:MI:SS') as "Current Time" from dual;
Two interesting things to note here:

You can use double quotes to make names case sensitive (by default, SQL is case insensitive), or to force spaces into names. Oracle will treat everything inside the double quotes literally as a single name. In this example, if "Current Time" is not quoted, it would have been interpreted as two case insensitive names CURRENT and TIME, which would actually cause a syntax error. DUAL is built-in relation in Oracle which serves as a dummy relation to put in the FROM clause when nothing else is appropriate. For example, try "select 1+2 from dual;". Another name for the built-in function SYSDATE is CURRENT_DATE. Be aware of these special names to avoid name conflicts.


--------------------------------------------------------------------------------
Operations on DATE You can compare DATE values using the standard comparison operators such as =, !=, >, etc.
You can subtract two DATE values, and the result is a FLOAT which is the number of days between the two DATE values. In general, the result may contain a fraction because DATE also has a time component. For obvious reasons, adding, multiplying, and dividing two DATE values are not allowed.

You can add and subtract constants to and from a DATE value, and these numbers will be interpreted as numbers of days. For example, SYSDATE+1 will be tomorrow. You cannot multiply or divide DATE values.

With the help of TO_CHAR, string operations can be used on DATE values as well. For example, to_char(<date>, 'DD-MON-YY') like '%JUN%' evaluates to true if <date> is in June.


 


本文出自:億恩科技【www.laynepeng.cn】

服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線