oracle中如何設定年月日,oracle 資料庫日期格式怎麼只要年月日

2022-03-12 04:54:20 字數 5261 閱讀 2327

1樓:匿名使用者

這個問題在專案中是一個很重要的細節,具體有兩種處理方式,主要取決於這個表是否需要進行資料交換,以及這個時間欄位如何使用,具體舉兩個例子吧:

一、使用varchar2型

1、如果這張表對時間的精度要求不高,比如只是到日。

2、該表需要經常與其他表進行資料互動,比較,查詢,並且其他表的時間精度不高於日(比如日、月、季度)

3、儲存大量資料用於統計分析,如本期、同期,累計值等。

儲存的時候需要格式化,例如:to_char(sysdate,'yyyy-mm-dd');

二、使用date型。

1、對時間精度要求較高,比如到秒;

2、需要與其他表做資料互動,更偏重於」準實時「互動,比如每15秒同步一次資料;

3、不用於統計分析(這點很重要,需要統計分析的話,強烈不建議使用date型);

4、該表資料不做物理刪除(刪除時只更新標誌位和刪除時間);

以上我這幾年的實際專案經驗,希望可以幫到你。

2樓:我tm不管

設定成date欄位型別,插入資料需這樣:

insert into table (a) values (to_date('1983-05-01','yyyy-mm-dd'))

3樓:

如果你是想臨時在你的會話中顯示 用,則

alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

則你的會話中涉及日期的值,會顯示為 4位年-兩位月-兩位日 24小時:兩位分鐘:兩位秒。

alter session set nls_date_format='yyyy-mm-dd';

則你的會話中涉及日期的值,會顯示為 4位年-兩位月-兩位日。

如果是想讓所有的使用者在會話中均顯示同一格式,則可以定義作業系統的環境變數

nls_date_format='yyyy-mm-dd hh24:mi:ss'

比如,unix , linux 上,ksh 下,使用 export

nls_date_format='yyyy-mm-dd hh24:mi:ss'

windows 上,在系統的環境變數中新增 .

oracle 中如何將日期中年月日擷取到年月

4樓:匿名使用者

1、建立測試

bai表,create table test_date(v_date date);

2、插入測試資料du,

insert into test_date

select sysdate - level * 10 from dual connect by level < 100

3、查詢

zhi表中所有記錄

dao,select * from test_date,可以看到時間格回式為年月日時分秒,答

4、編寫sql,將時間擷取到年月,

select t.*,

to_char(v_date, 'yyyymm') v_date_mon1,

trunc(v_date, 'mm') v_date_mon2

from test_date t

5樓:匿名使用者

字串bai型別的話,有兩種辦法

du(1)to_date然後擷取。to_char(to_date(欄位zhi,'yyyy-mm-dd'),'yyyy-mm')

(2)用instr定位第二個-,然dao後位置減一,在內用substr擷取就可以

容。substr(欄位,1,instr(欄位,'-',1,2)-1)

6樓:

oracle 中有自帶的兩個函式,to_char() 和to_date(),樓主你上面問題,內具體寫法如下:

容select to_char(to_date('2018-12-27','yyyy-mm-dd'),'yyyy-mm') result from dual;

oracle 資料庫日期格式怎麼只要年月日

7樓:匿名使用者

可通過用pl/sql來改變日期格式。

1、登入pl/sql。

2、登入後,點選選單欄,工具—首選項。

3、左側列表找到「日期/時間」。

4、可通過右側的各種方式進行自定義的格式和自帶的格式來進行修改,修改後點選「確定」按鈕儲存即可。

8樓:千鋒教育

1、oracle的日期格式

oracle資料預設的時間格式資料的顯示形式,與所使用的字符集有關。一般顯示年月日,而不顯示時分秒。

例如使用us7ascii字符集(或者是其他的英語字符集)時,預設的時間格式顯示為:28-jan-2003。

使用zhs16gbk字符集(或其他中文字符集)時時間格式預設顯示為:2003-1月-28。

向表中插入資料時,如果不使用轉換函式,則時間欄位的格式必須遵從會話環境的時間格式,否則不能插入。

檢視當前會話的時間格式,可以使用以下的sql語句:

sql> select sysdate from dual;

2、修改oracle日期格式的方法:

(1)在sql*plus中修改當前會話的日期格式;

sql> alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';

將當前會話的時間格式修改為這種格式: 2003-01-28 15:23:

38,即四位年-兩位月-兩位日,空格,24小時的制的小時:分鐘:秒,這種修改方法,只對當前會話有效。

(2)修改登錄檔(只對windows系統);

在登錄檔/hkey_local_machine/software/oracle/home0主鍵中增加一個字串(8i版本),字串名為nls_date_format,字串的值為你希望定義的時間格式,如: yyyy-mm-dd hh24:mi:

ss ,然後重新啟動sql*plus。

這種修改方法,對sql*plus視窗有效,即不論你開啟多少個sql*plus視窗,預設的都是這種時間格式。修改伺服器端的登錄檔無效,只有修改客戶端的登錄檔才有效。

(3)linux 下:oracle使用者編輯 .bash_profile下 加入以下內容;

export nls_date_format='yyyy-mm-dd hh24:mi:ss ',重新登入即可生效。

(4)用sysdba登入,然後更新props$這個表裡的欄位即可。

update props$ set value = 'yyyy-mm-dd hh24:mi:ss' where parameter = 'nls_date_format'。

我想用oracle資料庫中分別提取出date年月日和時間,該怎麼寫?

9樓:

1、因為oracle執行在linux系統下,首先,要連線linux系統。

2、切換到oracle安裝使用者下。 我的是 oracle。

3、執行oracle的環境變數, 以便輸入相關命令。

4、進入oracle控制檯。輸入命令: sqlplus  / as sysdba。

5、關閉資料庫, 輸入命令: shutdown immediate。

10樓:匿名使用者

你可以用上面to_char方式,也可以用substr方式。或者你可以選擇get函式方式,這三種都行,要是格式確定的話,建議最好是現在substr,這個函式可以任意擷取

11樓:匿名使用者

獲取系統日期: sysdate()

格式化日期: to_char(sysdate(),'yy/mm/dd hh24:mi:ss)

或 to_date(sysdate(),'yy/mm/dd hh24:mi:ss)

12樓:匿名使用者

用to_char()吧,

to_char(date,'yyyy')--年to_char(date,'mm')--月to_char(date,'dd')--日to_char(date,'hh')--小時to_char(date,'mi')--分to_char(date,'ss')--秒可以隨意組合

比如to_char(date,'yyyy-mm-dd hh24:mi:ss')

也可以to_char(date,'yyyy ss')

13樓:一渴望知識

to_data('yyyy-mm-dd hh:mm:ss');

14樓:

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowtime from dual;

oracle中如何獲得日期中的年份?

15樓:啦啦啦額

以下列舉兩種方式在在oracle中獲得日期中的年份,例如把sysdate中的年份取出來。

1、select to_number(to_char(sysdate,'yyyy')) from dual

例項**:

select

to_number(to_char(t.hiredate,'yyyy'))as 入職年,

from emp t;

執行結果:

2、使用extract函式,select extract(year from sysdate) from dual,這種方法省掉了型別轉換,

看上去更加簡潔。此方法獲得的結果,是數值型

例項**:

select

extract(year from t.hiredate) as入職年,

from emp t  ;

執行結果:

16樓:小可心u3f碩忘

在oracle中,要獲得日期中的年份,例如把sysdate中的年份取出來,並不是一件難事。常用的方法是:select to_number(to_char(sysdate,'yyyy')) from dual,而實際上,oracle本身有更好的方法,那就是使用extract函式,使用方法是:

select extract(year from sysdate) from dual,這種方法省掉了型別轉換,看上去更加簡潔。相應的,要取得月份或日,可以用select extract (month from sysdate) from dual和select extract (day from sysdate) from dual。

此方法獲得的結果,是數值型的,你可以設定一個方法測試一下。

年月日分別對照五行中的那些,年月日時辰與五行的關係?

天於五行 復甲乙東方制木 庚辛西方金 丙丁南方火 壬癸北方水 戊已 土 地支五行 亥子北方水 寅卯東方木 巳午南方火 申酉西方金 辰 戍 醜 未四隅土 年月日時變成八字 也叫四柱 每柱一干一地支 再對應五行 年 月 日 時辰與五行的關係?以前中國古代是用紀年曆法計算時間。也就是甲子曆法。以此曆法是由...

ecel中如何把日期的年月日改為橫槓

選中單元格,右擊選擇 設定單元格格式 選擇 日期 點選選擇第3行,點選確定。具體操作步驟如下 選擇要修改日期的單元格,右擊選擇設定單元格格式。2.選擇 日期 型別。3.選擇第3行,單擊確定。4.修改後效果。excel如何將無分隔線日期轉換為橫線日期 在excel的編輯欄點選公式,出現幾個子項,再點選...

英文中表達年月日有多少種方式,在英語中,如何表達年月日?

一 在英國英語中,通常可有兩種表達法。即62616964757a686964616fe78988e69d8331333431366330 以 1988年5月2日 為例 1 寫法 the 2 nd may,1988 讀法 the second of may,ni een eighty eight 2 ...