国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
oracle的時(shí)間格式討論
在網(wǎng)上看見(jiàn)不少oracle新學(xué)者對(duì)oracle的時(shí)間格式很煩,經(jīng)常是設(shè)計(jì)了一個(gè)帶時(shí)間字段的表之后,向表插

入數(shù)據(jù)失敗?;叵肫鹱约簞傞_(kāi)始學(xué)習(xí)oracle時(shí),也對(duì)這個(gè)時(shí)間格式摸不著頭腦,雖然是小小的問(wèn)題,高手

們不屑于討論,但對(duì)初學(xué)者來(lái)講,這也是一個(gè)不大不小的坎,沒(méi)找到門(mén)路的話, 可能幾天都過(guò)不去,其

實(shí)就是一層窗戶紙,沒(méi)什么難的。這里做一個(gè)簡(jiǎn)單的小結(jié),因水平有限,請(qǐng)高手補(bǔ)充指正。

1 oracle對(duì)時(shí)間格式的數(shù)據(jù)存貯
oracle數(shù)據(jù)庫(kù)中存放時(shí)間格式的數(shù)據(jù),是以oracle特定的格式存貯的,占7個(gè)字節(jié),與查詢時(shí)顯示的時(shí)間

格式無(wú)關(guān),具體哪個(gè)字節(jié)表示什么,我不太清楚,請(qǐng)高手補(bǔ)充。存貯的時(shí)間包括年月日時(shí)分秒,最小精度

為秒,不存貯秒以下的時(shí)間單位。因此在一些前臺(tái)支持毫秒級(jí)的程序(如PB客戶端程序)連接到oracle數(shù)據(jù)

庫(kù)時(shí)應(yīng)注意這點(diǎn)。查詢時(shí)顯示的時(shí)間格式,由會(huì)話環(huán)境決定,或者由用戶定義,與數(shù)據(jù)庫(kù)無(wú)關(guān)。

2 oracle時(shí)間顯示形式
通常,客戶端與數(shù)據(jù)庫(kù)建立起連接后,oracle就會(huì)給一個(gè)缺省的時(shí)間格式數(shù)據(jù)的顯示形式,與所使用的字

符集有關(guān)。一般顯示年月日,而不顯示時(shí)分秒。例如,使用us7ascii字符集(或者是其他的英語(yǔ)字符集)時(shí)

,缺省的時(shí)間格式顯示為:28-Jan-2003,而使用zhs16gbk字符集(或其他中文字符集)時(shí)時(shí)間格式缺省顯

示為:2003-1月-28。向表中插入數(shù)據(jù)時(shí),如果不使用轉(zhuǎn)換函數(shù),則時(shí)間字段的格式必須遵從會(huì)話環(huán)境的

時(shí)間格式,否則不能插入。查看當(dāng)前會(huì)話的時(shí)間格式,可以使用以下的SQL語(yǔ)句:
SQL> select sysdate from dual;

3 向oracle表中插入時(shí)間格式的數(shù)據(jù)
向oracle表插入時(shí)間格式的數(shù)據(jù)是一個(gè)相對(duì)來(lái)講比較麻煩的事情,要么你嚴(yán)格遵從當(dāng)前會(huì)話的時(shí)間格式書(shū)

寫(xiě)你的時(shí)間值,要么使用轉(zhuǎn)換函數(shù)自定義時(shí)間數(shù)據(jù)的格式。有兩個(gè)與時(shí)間相關(guān)的轉(zhuǎn)換函數(shù):to_char 和

to_date 。to_char(時(shí)間值,時(shí)間格式)函數(shù)將時(shí)間值轉(zhuǎn)換為字符串形式,通常在查詢中使用;to_date(字

符串,時(shí)間格式)則把格式字符串轉(zhuǎn)換時(shí)間值,通常在insert 語(yǔ)句中使用。在日期格式中,各種日期格式

分量這里不作詳細(xì)的討論,請(qǐng)查oracle幫助文檔中這兩個(gè)函數(shù)的用法,或者查一查PL/SQL編程的書(shū),講得

很詳細(xì)的。

4 如何修改會(huì)話中的日期格式
修改當(dāng)前會(huì)話中的日期格式據(jù)說(shuō)有三種辦法,我只做過(guò)前兩種辦法的試驗(yàn),修改glogin.sql文件的辦法我

沒(méi)有試過(guò),不知道是不是真的能行。下面一一解說(shuō)。
(1)   在sql*plus中修改當(dāng)前會(huì)話的日期格式
SQL> alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';
將當(dāng)前會(huì)話的時(shí)間格式修改為這種格式: 2003-01-28 15:23:38,即四位年-兩位月-兩位日,空格,24小

時(shí)的制的小時(shí):分鐘:秒。
這種修改方法,只對(duì)當(dāng)前會(huì)話有效。注意,是對(duì)當(dāng)前會(huì)話,而不是當(dāng)前的sql*plus窗口。即如果你這樣修

改之后,又使用connect命令以其他用戶連接到數(shù)據(jù)庫(kù)或者是連接到其他的數(shù)據(jù)庫(kù),則這個(gè)日期格式就失

效了,又恢復(fù)到缺省的日期格式。
(2)   修改注冊(cè)表(只對(duì)windows系統(tǒng))
在注冊(cè)表\hkey_local_machine\software\oracle\home0主鍵中增加一個(gè)字串(8i版本),字串名為

nls_date_format,字串的值為你希望定義的時(shí)間格式,如: yyyy-mm-dd hh24:mi:ss ,然后重新啟動(dòng)

sql*plus。
這種修改方法,對(duì)sql*plus窗口有效,即不論你打開(kāi)多少個(gè)sql*plus窗口,缺省的都是這種時(shí)間格式。修

改服務(wù)器端的注冊(cè)表無(wú)效,只有修改客戶端的注冊(cè)表才有效。
unix系統(tǒng)下有沒(méi)有這類似的方法,我不知道,我不會(huì)用unix或者是linux系統(tǒng)。
(3)   修改$oracle_home\sqlplus\admin目錄中g(shù)login.sql文件
這種方法我沒(méi)有試過(guò),不敢亂說(shuō),以免誤導(dǎo)大家。請(qǐng)了解這種方法的高手來(lái)指教。

5 日期格式的優(yōu)先級(jí)
如果在一個(gè)具體的環(huán)境中,既修改了注冊(cè)表,又使用alter session命令修改了當(dāng)前會(huì)話,那么哪一種修

改方法有效呢?alter session命令有效,它的優(yōu)先級(jí)是最高的。即不管當(dāng)前的客戶端環(huán)境是什么樣的,

注冊(cè)表修改成什么樣子了,只要你使用了alter session命令來(lái)修改了時(shí)間格式,那么就以你修改后的時(shí)

間格式為準(zhǔn)。
因此,如果直接使用sql*plus交互式查詢或插入時(shí)間格式的數(shù)據(jù),兩種方法都可以用。如果使用sql文件

來(lái)進(jìn)行批量的插入或者是定時(shí)執(zhí)行,最好在使用時(shí)間數(shù)據(jù)前使用alter session命令來(lái)修改會(huì)話,以保證

這個(gè)sql語(yǔ)句的正常運(yùn)行與環(huán)境無(wú)關(guān)。同樣的,如果是前臺(tái)的客戶端程序中需要使用到時(shí)間格式的數(shù)據(jù),

最好也在使用之前修改會(huì)話,或者使用to_char或to_date函數(shù)進(jìn)行轉(zhuǎn)換(強(qiáng)烈推薦使用轉(zhuǎn)換函數(shù)),以保證

程序運(yùn)行與環(huán)境無(wú)關(guān)。

小結(jié):
oracle數(shù)據(jù)庫(kù)中有關(guān)時(shí)間類型的數(shù)據(jù),定義了很多函數(shù),特別是關(guān)于時(shí)間數(shù)據(jù)的計(jì)算,非常方便,當(dāng)然,

方便的前提是你對(duì)oracle的時(shí)間函數(shù)比較熟悉。在這里我有時(shí)候看到有些人存貯時(shí)間類型的數(shù)據(jù)時(shí)使用字

符串類型的字段,我強(qiáng)烈的反對(duì)這種做法,不論是從系統(tǒng)的開(kāi)銷,還是從時(shí)間數(shù)據(jù)的計(jì)算來(lái)講,或者是取

這個(gè)數(shù)據(jù)中的某一個(gè)子數(shù)據(jù),比如取時(shí)間中的月,取時(shí)間中的星期等等,都不如直接存貯為時(shí)間類型的數(shù)

據(jù)來(lái)得方便。只要熟悉了oracle關(guān)于時(shí)間的函數(shù),我相信大家會(huì)喜歡上oracle時(shí)間類型的數(shù)據(jù)的,非常靈

活,功能強(qiáng)大,幾乎可以做你所能想到的關(guān)于時(shí)間的一切事情——就看你對(duì)oracle的時(shí)間函數(shù)掌握程度了

。

以上在windows 2000 + oracle 805版本測(cè)試通過(guò),不對(duì)之處,請(qǐng)高手指正。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Oracle 修改默認(rèn)日期格式
在Oracle9i中計(jì)算時(shí)間差
如何用Excel計(jì)算帶毫秒的時(shí)間格式數(shù)據(jù)呢
Oracle數(shù)據(jù)庫(kù)中的時(shí)間類數(shù)據(jù)類型小結(jié)
期貨策略回測(cè)的框架、實(shí)現(xiàn)、測(cè)試——以一個(gè)具有品種通用性和測(cè)試周期通用性的策略為例
PL/SQL備份數(shù)據(jù)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服