① oracle資料庫建表語句可以指定date欄位的格式嗎
可以
oracle資料庫建表date,Oracle資料庫中關於日期和時間欄位類型 轉載
2021-04-02 21:03:04
GUlijiwa古力
碼齡4年
關注
Oracle資料庫
與日期有關的有三種類型:date,timestamp與interval。DATE和TIMESTAMP類型存儲精度可變的固定日期/時間,二者區別是,後者秒可以精確到小數,另外還可以有時區之分。。INTERVAL類型可以很容易地存儲一個時間量,櫻搏如「8個小時」或「30天」。將兩個日期相減,就脊毀祥會得到一個時間間隔(INTERVAL);例如,將8小時間隔加到一個TIMESTAMP上,會得到8小時以後的一個新的TIMESTAMP。
操作日期有關欄位的時候,最好顯示地指定日期或時間格式,比如:
Insert into t ( date_column ) values ( to_date( '01/02/2003', 'DD/MM/YYYY' ) );避免各種格式造成混亂。
1. DATE類型介紹
DATE類型是一個7位元組的定寬日期/時間數據類型。它總是包含7個屬性,包括:世紀、世紀中哪一年、月份、月中的哪一天、小時、分鍾和秒。這七個位元組分別存儲的是這7個屬性,比如:2005-12-05 12:30:43存儲的是120,105,12,5,12,31,44。世紀和年份分別加了100,分鍾和秒鍾分別加了1。世紀和年份加100是為了區余塌分公元前和公元後。我們經常使用這樣的條件,Where to_char(date_column,'yyyy') = '2005',其實這個地方可以換成:Where trunc(date_column,'y') = to_date('01-jan-2005','dd-mon-yyyy')。因為,trunc函數是在日期上將年份後面5個位元組清空,而to_char函數,還要轉換成字元串。當然,如果能夠不使用函數最好,比如:created >= to_date('01-jan-2005','dd-mon-yyyy') and created < to_date('01-jan-2006','dd-mon-yyyy');這樣如果在created列上建立了索引,還能使用索引。
② 在oracle中, date datetime有什麼區別啊
在oracle中, date、datetime區別為:格式不同、存儲空間不同、精度不同。
一、格式不同
1、date:date支持的范圍是 '1000-01-01' 到'9999-12-31'。
2、datetime:datetime支持的范圍是'1000-01-梁彎簡0100:00:00' 到 '9999-12-3123:59:59'。
二、存儲空間不同
1、date:date型數值用於需要一個日期值而不需要時間部分,佔用3個位元組。
2、datetime:datetime型數值用於需要同時包橡褲含日期和時間信息的值,佔用8個位元組。
三、精度不同
1、date:date轉換為datetime會增加精度,時、分、秒、鬧哪毫秒數都為0。
2、datetime:datetime轉換為date會丟失精度,約去時、分、秒、毫秒數。
③ ORACLE資料庫中怎麼設置date類型
分兩種情況,一種是在創建表的時候直接設置date類型,另一種是在表已存在的情況下,更改某欄位類型為date。
第一種情況:
sql">createtabletest
(idint,
ttimedate);
如,上述內容是直接設置ttime欄位類型為date。
第二種情況:
altertabletestmodifyttimedate;
如,上述是將test表中的ttime欄位在非date類型的情況下改為date類型,但前提需要是表內無數據,否則執行會報錯。
④ oracle中如何插入date類型的數據
oracle中如拿戚何插入date類銀派型的數據方法如下:
insert
into
tabname(datecol)
value(sysdate)
;
--
用date值
insert
into
tabname(datecol)
value(sysdate+1)
;
--
用date值
insert
into
tabname(datecol)
value(to_date('2014-02-14','yyyy-mm-dd'))
;
--
用to_date
insert
into
tabname(datecol)
value(to_date('2014-02-14
20:47:00','yyyy-mm-dd
hh24:mi:ss'))
;
--
用to_date
insert
into
tabname(datecol)
value(to_date('20140214','yyyymmdd'))
;
--
用to_date
insert
into
tabname(datecol)
value(to_date('20140214204700'消搏陵,'yyyymmddhh24miss'))
;
--
用to_date
⑤ oracle中,有一個test表,表中有一date類型的date欄位,如何根據條件查詢date數據啊
以下每一句效果都一樣:
1、Select * from a where date between to_date('2018-1-1', 'yyyy-mm-dd') and to_date('2018-8-1','如搭yyyy-mm-dd')
2、Select * from a where date between to_date('2018/1/1', 'yyyy/mm/dd') and to_date('2018/8/1','yyyy/mm/dd')
3、Select * from a where date between to_date('2018-1-1', 'yyyy/mm/dd') and to_date('2018/8/1','yyyy-mm-dd'基團)
(5)oracle資料庫中date擴展閱讀
資料庫中Date與DateTime的區別
Date:代表xxxx年xx月xx日 只表示前面的日期,是SQL Server 2008新引進的數據類型。它表示一個日子,不包含時間部分,可以表示的日期范圍從公元元年1月1日到9999年12月31日,只需要3個位元組的存儲空間。
DateTime:代表xxxx年xx月xx日xx時xx分xx秒 精確到時分秒,用於做時間戳,日期和時間部分,可以表示的日期范圍從公元1753年1月1日00:00:00.000 到9999年12月31日搏橡橘23:59:59.997 ,精確到3.33毫秒,它需要8個位元組的存儲空間。
⑥ Oracle資料庫插入日期格式字元串給date類型欄位,nls_date_format參數值作用
查詢各個級別nls_date_format
設置nls_date_format
2)其次,設定nls_date_format的值
①session級別設定值:
alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss'
設定之後再查詢會發現nls_session_parameters視圖中nls_date_format的值已經變了,而nls_instance_parameters、nls_database_parameters視圖中的值沒有變。
session級別——如果只是希望自己看到某種格式而不影響其他人看到的結果。
②instance級別設定值:
alter system set nls_date_format = 'yyyy-mm-dd hh24:mi:ss'
此級別的值在oracle9i以後就不允許設定了。
③database級別設定值:
oracle不允許設定此級別的參數值,也沒有提供設定語句。
更改日期類型格式化
目的:減少客戶端對時間欄位(字元串,日期)格式化
⑦ oracle 中日期的類型都有哪些
1.1、DATE
這是ORACLE最常用的日期類型,它可以保存日期和時間,常用日期處理都可以採用這種類型。DATE表示的日期范圍可以是公元前4712年1月1日至公元9999年12月31日
date類型在資料庫中的存儲固定為7個位元組,格式為:
第1位元組:世紀+100
第2位元組:年
第3位元組:月
第4位元組:天
第5位元組:小時+1
第6位元組:分+1
第7位元組:秒+1
1.2、TIMESTAMP(p)
這也是ORACLE常用的日期類型,它與date的區別是不僅可以保存日期和時間,還能保存小凳首數秒,小數位數可以指定為0-9,默認為6位,所以最高精度可以到ns(納秒),資料庫內部用7或者11個位元組存儲,如果精度為0,則用7位元組存儲,與date類型功能相同,如果精度大於0則用11位元組存儲。
格式為:
第1位元組:世紀+100
第2位元組:年
第3位元組:月
第4位元組:天
第5位元組:小時+1
第6位元組:分+1
第7位元組:秒+1
第8-11位元組:納睜粗世秒,採用4個位元組存儲,內部運算類型為整形
註:TIMESTAMP日期類型如果與數值進行悉肢加減運算會自動轉換為DATE型,也就是說小數秒會自動去除。
1.3、DATE與TIMESTAMP類型內部存儲驗證
1 create table T
2 (
3 C1 DATE,
4 C2 TIMESTAMP(9)
5 );
6
7 insert into t(c1,c2) values(date'2010-2-12',timestamp'2010-2-12 13:24:52.234123211');
8 insert into t(c1,c2) values(
9 to_date('2010-2-12 10:20:30','YYYY-MM-DD HH24:MI:SS'),
10 to_timestamp('2010-2-12 13:24:52.123456','YYYY-MM-DD HH24:MI:SS.FF6')
11 );
12
13 SQL> select c1,mp(c1) c1_d,c2,mp(c2) c2_d from t;
C1 C1_D C2 C2_D
------------------------ ---------------------------------------- ---------------------------------------- -----------------------------------------------------
2010-2-12 Typ=12 Len=7: 120,110,2,12,1,1,1 12-FEB-10 01.24.52.234123211 PM Typ=180 Len=11: 120,110,2,12,14,25,53,13,244,111,203
2010-2-12 上午 10:20:30 Typ=12 Len=7: 120,110,2,12,11,21,31 12-FEB-10 01.24.52.123456000 PM Typ=180 Len=11: 120,110,2,12,14,25,53,7,91,202,0
以下是為了測試是為了驗證TIMESTAMP的小數位存儲演算法:
1 SQL> select c2,mp(c2,16) c2_d16 from t;
C2 C2_D16
---------------------------------------- --------------------------------------------------------------------------------
12-FEB-10 01.24.52.234123211 PM Typ=180 Len=11: 78,6e,2,c,e,19,35,d,f4,6f,cb
12-FEB-10 01.24.52.123456000 PM Typ=180 Len=11: 78,6e,2,c,e,19,35,7,5b,ca,0
SQL> select to_number('0df46fcb','xxxxxxxx') mydata1,to_number('075bca00','xxxxxxxx') mydata2 from al;
MYDATA1 MYDATA2
---------- ----------
234123211 123456000
2、常見問題
2.1、如何取當前時間
sysdate--返回當前系統日期和時間,精確到秒
systimestamp--返回當前系統日期和時間,精確到毫秒
2.2、如何進行日期運算
日期型數據可以與數值加減得到新的日期,加減數值單位為天
sysdate+1--取明天的當前時間
sysdate-1/24--取當前時間的前一個小時
SQL> select sysdate d1,sysdate+1 d2,sysdate-1/24 d3 from al;
D1 D2 D3
------------------------ ------------------------ ------------------------
2010-5-13 下午 10:55:16 2010-5-14 下午 10:55:16 2010-5-13 下午 09:55:16
2.3、如何求兩個日期的間隔時間
可以直接把兩個日期相減,返回的單位為天,小時及分秒會換算成小數
SQL> select date'2012-01-01'-sysdate from al;
DATE'2012-01-01'-SYSDATE
------------------------
597.046030092593
2.4、如何將日期轉字元
to_char(sysdate,'YYYY-MM-DD HH24:MI:SS')
2.5、如何將字元轉日期
to_date('2010-02-24 15:01:54','YYYY-MM-DD HH24:MI:SS')
to_timestamp('1999-12-01 11:00:00.123456','YYYY-MM-DD HH:MI:SS.FF6')
3、常用日期函數
3.1、TO_CHAR(DATE,FORMATSTR)--格式化日期成字元
SQL> select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') d1 from al;
D1
------------------------
2010-05-13 22:56:38
TO_CHAR的其它用法示例
1 SQL> SELECT TO_CHAR(date '2010-02-12', 'D') week_dayth,--周第幾天(1-7),星期天=1,星期一=2,星期二=3,星期三=4,星期四=5,星期五=6,星期六=7
2 TO_CHAR(date '2010-02-12', 'DD') month_dayth,--月第幾天
3 TO_CHAR(date '2010-02-12', 'DDD') year_dayth,--年第幾天
4 TO_CHAR(date '2010-02-12', 'DAY') weekdayname,--英文星期名
5 _CHAR(date '2010-02-12', 'w') month_weekth,--月第幾周(0-4)
6 TO_CHAR(date '2010-02-12', 'ww') year_weekth--年第幾周(0-53)
7 FROM DUAL;
WEEK_DAYTH MONTH_DAYTH YEAR_DAYTH WEEKDAYNAME MONTH_WEEKTH YEAR_WEEKTH
---------- ----------- ---------- ----------- ------------ -----------
6 12 043 FRIDAY 2 07
3.2、TO_DATE(CHAR,FORMATSTR) --將字元轉換成日期
to_date('2010-02-24 15:01:54','YYYY-MM-DD HH24:MI:SS')
格式備註:
HH表示12小時進制,HH24表示採用24小時進制,MM表示月份,MI表示分鍾。
3.3、TRUNC(DATE)--返回DATE的日期部分,時間為0點0分0秒
SQL> select sysdate d1,trunc(sysdate) d2 from al;
D1 D2
------------------------ ------------------------
2010-5-13 下午 10:59:18 2010-5-13
3.4、EXTRACT(DATA FROM DATEVALUE)--返回DATE的某一部份內容
如果DATEVALUE為DATE類型,則DATA可以是(YEAR、MONTH、DAY)
如果DATEVALUE為TIMESTAMP類型,則DATA可以是(YEAR、MONTH,DAY、HOUR、MINUTE、SECOND)
SQL> select sysdate d1,EXTRACT(YEAR FROM sysdate) thisyear,EXTRACT(MINUTE FROM systimestamp) thism from al;
D1 THISYEAR THISM
------------------------ ---------- ----------
2010-5-13 下午 11:05:06 2010 5
3.5、ADD_MONTHS(DATE,MONTHS) --在DATE增加月份得到新日期
ADD_MONTHS(sysdate,3) --當前日期加3個月
ADD_MONTHS是一個比較有意思的函數,它會自動處理大小月及閏月,如下所示
1 SQL> select ADD_MONTHS(date '2010-2-12', 1),
2 ADD_MONTHS(date '2010-2-27', 1),
3 ADD_MONTHS(date '2010-2-28', 1),
4 ADD_MONTHS(date '2010-1-31', 1)
5 from al
6 ;
ADD_MONTHS(DATE'2010-2-12',1) ADD_MONTHS(DATE'2010-2-27',1) ADD_MONTHS(DATE'2010-2-28',1) ADD_MONTHS(DATE'2010-1-31',1)
----------------------------- ----------------------------- ----------------------------- -----------------------------
2010-3-12 2010-3-27 2010-3-31 2010-2-28
3.6、LAST_DAY(DATE)--返回日期所在月份的最後一天日期
SQL> select LAST_DAY(date '2010-2-12') from al;
LAST_DAY(DATE'2010-2-12')
-------------------------
2010-2-28
3.7、NEXT_DAY(DATE,CHAR) --從給定日期開始返回下個CHAR指定星期的日期
SQL> SELECT NEXT_DAY(date'2010-2-21', 'MONDAY') NEXTDAY1,NEXT_DAY(date'2010-2-22', 'MONDAY') NEXTDAY2 FROM DUAL;
NEXTDAY1 NEXTDAY2
----------- -----------
2010-2-22 2010-3-1
TO_YMINTERVAL(CHAR)--返回[年-月]格式構成的時間間隔,一般用於日期加減運算
3.8、TO_DSINTERVAL(CHAR)--返回[天 時:分:秒]格式構成的時間間隔,一般用於日期加減運算
SQL> select date'2010-2-12'+TO_YMINTERVAL('01-02') newdate from al;
NEWDATE
------------------------------
2011-4-12
3.9、NUMTOYMINTERVAL(N,CHAR) --返回CHAR中指定單位的時間間隔數值,一般用於日期加減運算
char可以為YEAR,MONTH
1 SQL> select date '2010-2-12' + NUMTOYMINTERVAL(1, 'year') newdate1,
2 date '2010-2-12' + NUMTOYMINTERVAL(1, 'month') newdate2
3 from al;
NEWDATE1 NEWDATE2
----------- -----------
2011-2-12 2010-3-12
3.10、NUMTODSINTERVAL(N,CHAR) --返回CHAR中指定單位的時間間隔數值,一般用於日期加減運算
char可以為DAY,HOUR,MINUTE,SECOND
1 SQL> select date '2010-2-12' + NUMTODSINTERVAL(1, 'DAY') newdate1,
2 date '2010-2-12' + NUMTODSINTERVAL(1, 'HOUR') newdate2
3 from al;
NEWDATE1 NEWDATE2
----------- ------------------------
2010-2-13 2010-2-12 上午 01:00:00
⑧ 在oracle資料庫里怎麼把char類型的欄位轉換成date類型
在oracle資料庫里怎麼把char類型的欄位轉換成date類型
to_date(char型, 格式)
格式是當前char型的日期表現形式;如"MAR 16,2011"的格式為"MON DD,YYYY"。
SQL資料庫里存的image類型的欄位怎麼轉換成base64的字元寫到XML文件里
Convert.ToBase64String(.....)方法。此方法有重載,自己選擇適當的方法使用
oracle怎麼將date類型轉換成char類型?
- 可以這樣 to_char(date,'YYYY')='
-
或者 to_date(date,'YYYY-MM-DD :HH24:MI:SS')=-1-1 16:26:22'
-
其中 HH24 是24小時制的
oracle的作用:
-
是甲骨文公枝岩司的一款關系資料庫管理系統。
-
它是在資料庫領域一直處於領先地位的產品。可以說Oracle資料庫系統是目前世界上流行的關系資料庫管理系統,系統薯盯可移植性好、使用方便、功能強,適用於各類大、中、小、微機環境。
-
它是一種高效率、可靠性好的 適應高吞吐量的資料庫解決方案。
sql語句怎麼將int類型的欄位全部數據(欄位數據如200301)轉換成datetime類型?
sql server 資料庫
select convert(datetime,substring(日期欄位,1,4)+'-'+substring(日期欄位,5,2)+'-'+substring(日期欄位,7,2))
from 來源表
oracle資料庫 select to_date(欄位||'','yyyymm') from al;
關於springmvc怎麼自動把前台string類型日期欄位轉換成date類型
簡單點處理,就是接收string,然後string轉成date,就不用spring自動轉換了
其實道理一樣,spring幫你做這個轉換跟你自己做轉換區別不大
oracle資料庫CLOB類型怎麼轉換為String?
- 給你段參考代碼,讀取clob數據
import java.io.InputStream;
import java.io.Reader;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
public class TestClobOut {
public static void main(String args[]){
String data;
Reader inStream=null;
獲得資料庫連接 -
Connection con = ConnectionFactory.getConnection();ConnectionFactory類是另猛手御外定義的,不必糾結
con.setAutoCommit(false);
Statement st = con.createStatement();
不需要「for update」
ResultSet rs = st.executeQuery("select CLOBATTR from TESTCLOB where ID=1");
if (rs.next())
{clob 轉換 String (傳入 clob 類型的 obj 對象)
public static String getClob2String(Object obj) {
String str = "";
try {
CLOB clob = (CLOB) obj;
if (clob == null || clob.length() == 0) {
str = "";
} else {
long clen = clob.length();
char clobArray[] = new char[(int) clen];
int readednum = clob.getChars(1, (int) clen, clobArray);
StringBuffer *** = new StringBuffer();
*** .append(clobArray);
str = *** .toString();
}
} catch (SQLException e) {
e.printStackTrace();
}
return str;
}
java.sql.Clob clob = rs.getClob("CLOBATTR");
inStream = clob.getCharacterStream();
char[] c = new char[(int) clob.length()];
inStream.read(c);
data是讀出並需要返回的數據,類型是String
data = new String(c);
inStream.close();
}
inStream.close();
con.mit();
con.close();
}
}
怎樣把textbox類型轉換成money類型插入資料庫
首先,你必須要確定你的文本框中輸入的字元串可以正常轉換成數值,然後直接按字元串代入到SQL語句中,不需要轉換,代入時,可以考慮下面這個辦法:
drs.open "select * from 表名 where MoneyField="+cstr(val(text1.text)),your
經過兩次VB下的數據轉換,是為了把文本框當中的內容轉換成確實可以被SQL解釋為Money的字元串
如何將String類型的日期轉換成java.sql.Date類型存進資料庫
DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
Date date = fmt.parse(String的date);
轉化的就是date了
怎麼把字元串類型的數據用java語言轉換成oracle資料庫能識別的日期類型
oracle中有把字元產轉換為日期的函數啊,TO_DATE(-10-01','YYYY-MM-DD'),你在Java中sql語句里直接用就可以了啊。如果你是想在Java中把字元串轉換成日期型用如下的方法:String str="2009-10-01";
SimpleDateFormat st=new SimpleDateFormat("yyyy-MM-DD");
try {
Date date = st.parse(str);
System.out.println(date);
} catch (ParseException e) {
e.printStackTrace();
}
資料庫里欄位是uniqueidentifier類型的,怎麼操作
這個就是唯一欄位類型。 sqlserver 賦值是用newid()。 會自動生成一個uniqueidentifier類型的唯一值。 其他操作於其他類型值一樣。
⑨ oracle資料庫date類型存儲為2014-04-01下午 02:21:16格式
你在oracle資料庫中定義char類型的欄位,在程序中使用TO_CHAR(ld_date,'yyyy') 來提取ld_date中的年份,氏罩然後save()資料庫就可以了。
如果你要修殲談鬧改oracle資料庫的參數的話:
就修改 nls_date_format 的格式侍或為 yyyy
修改注冊表中:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1
添加一個字元串的值 名稱:NLS_DATE_FORMAT 值 :YYY Y(你要的日期格式)
但是這樣會影響到你整個oracle的date設計,不建議你動資料庫的默認參數。
⑩ oracle11G資料庫中某列為DATE型日期,如何能轉換成number型
number類型的to_char是這么用的select to_char( 20150628 ,'9,999,999') from al
要實現你要的結果,必須這么寫
select to_char(to_date( '20150628' ,'yyyymmdd'),'yyyy/mm/dd') from al
把'2010052' 換成你欄位I_Appr_Date就可以了.
select to_char(to_date(col,'yyyy/mm/dd'),'yyyy/mm/dd') from tb
下面是例子 :
SQL> select to_date(20100628,'yyyy/mm/dd') from al
2 /
枯伏TO_DATE(201006
遲賣28-6月碼敗逗 -15
SQL> select to_char(to_date(20100628,'yyyy/mm/dd'),'yyyy/mm/dd') from al;
TO_CHAR(TO
2015/06/28