本文目錄一覽:
數據庫中轉換數據類型的幾種方法
oracle有三種最基本的數據類型,即字符型、數值型、日期型。 (注意需要起別名的地方要起別名)
oracle提供的單行函數中,針對不同的數據類型,提供大量實用的函數,同時提供一系列數據類型轉換函數,如下:
sql.append(” select CURVE_NAME,S_YEAR_LIMIT,AVERAGE_VALUE,to_char(d_date,’yyyy-MM-dd’) d_date from t_treasury_yield_curve t where d_date = to_date (‘”+d_date+”‘,’yyyy-MM-dd’)”);
24 小時的形式顯示出來要用 HH24select to_char(sysdate,’yyyy-MM-dd HH24:mi:ss’) from dual;
select to_date(‘2005-01-01 13:14:20′,’yyyy-MM-dd HH24:mi:ss’) from dual;to_date() function。
1、日期格式參數 含義說明
D 一周中的星期幾。
DAY 天的名字,使用空格填充到 9 個字符。DD 月中的第幾天,DDD 年中的第幾天。
DY 天的簡寫名,IW ISO 標準的年中的第幾周,IYYY ISO 標準的四位年份。YYYY 四位年份,
YYY,YY,Y 年份的最後三位,兩位,一位。
select sysdate,sysdate – interval ‘7’ month from dual。
當前時間減去 7 年的時間。
select sysdate,sysdate – interval ‘7’ year from dual。
時間間隔乘以一個數字。
select sysdate,sysdate – 8 *interval ‘2’ hour from dual
2、日期到字符操作
select sysdate,to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from dual,select sysdate,to_char(sysdate,’yyyy-mm-dd hh:mi:ss’) from dual,select sysdate,to_char(sysdate,’yyyy-ddd hh:mi:ss’) from dual。
select sysdate,to_char(sysdate,’yyyy-mm iw-d hh:mi:ss’) from dual。
3、字符到日期操作
select to_date(‘2003-10-17 21:15:37′,’yyyy-mm-dd hh24:mi:ss’) from dual。
具體用法和上面的 to_char 差不多。
4、TO_NUMBER
使用TO_NUMBER函數將字符轉換為數字
TO_NUMBER(char[, ‘格式’])
數字格式格式:
9 代表一個數字 。
0 強制顯示0 。
$ 放置一個$符 。
L 放置一個浮動本地貨幣符 。
. 顯示小數點 。
, 顯示千位指示符。
擴展資料:
在使用數據類型轉換之前,同樣的 SQL 在有的服務器不報錯,主要是數據庫的版本不同,當然該過配置的不算。
常見的兩種類型轉換錯誤如下:
ERROR: operator does not exist: integer = character varying。
ERROR: operator does not exist: character varying = integer。
字符串轉數字,數字轉字符串。這一點支持的不如 MySQL 好,當然 PostgreSQL 在新版本中也對這個問題做了改進!
第一種轉換方式:使用 CAST 函數。
SELECT * FROM xttblog WHERE id = CAST(888 AS VARCHAR);
SELECT * FROM xttblog WHERE id = CAST(‘888’ AS integer)。
第二種轉換方式:使用“::”操作字段。
格式,字段 :: 要轉換為的數據類型。
SELECT * FROM xttblog WHERE id = 888 :: VARCHAR;
SELECT * FROM xttblog WHERE id = ‘888’ :: integer。
數據類型轉換,雖然看起來很痛苦,但是如果用戶的類型用的不對,查詢效率會下降。所以,在設計的時候,字段的類型,一定要設計的合理,尤其是在關聯表的時候。
MYSQL數據類型和格式怎麼轉換
public static String parseDateToStringNorm(Date date){
String s=null;
SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
s=sdf.format(date);
return s;
}
可以把2014-04-10 10:13:56轉換成字符串輸出、、
mysql數據庫中sql修改字段類型要怎麼做
alter table 表名 modify 字段名 新類型
例如 alter table A modify age int;
mysql數據類型轉換
數字轉字符
mysql SELECT CONCAT ( CAST(1 as char) , ‘2’) AS test;
+——+
| test |
+——+
| 12 |
+——+
1 row in set (0.00 sec)
mysql SELECT CONCAT ( Convert(1, char) , ‘2’) AS test;
+——+
| test |
+——+
| 12 |
+——+
1 row in set (0.00 sec)
字符轉數字
mysql SELECT CAST(‘1’ as SIGNED) + 100 AS test;
+——+
| test |
+——+
| 101 |
+——+
1 row in set (0.00 sec)
mysql SELECT Convert(‘1’ , SIGNED) + 100 AS test;
+——+
| test |
+——+
| 101 |
+——+
1 row in set (0.00 sec)
mysql中常見的數據類型
一:MySQL數據類型
MySQL中定義數據字段的類型對你數據庫的優化是非常重要的
MySQL支持多種數據類型,大致可以分為三類:數值 日期/時間和字符串
二、數值類型
1.整數類型
2.浮點數
如果希望保證值比較準確,推薦使用定點數數據類型。MySql中的浮點類型有float,double和real。他們定義方式為:FLOAT(M,D) 、 REAL(M,D) 、 DOUBLE PRECISION(M,D)。
FLOAT和DOUBLE中的M和D的取值默認都為0,即除了最大最小值,不限制位數。允許的值理論上是-1.7976931348623157E+308~-2.2250738585072014E-308、0和2.2250738585072014E-308~1.7976931348623157E+308。M、D範圍如下:
(MySql5.7實測,與IEEE標準計算的實際是不同的,下面介紹):M取值範圍為0~255。FLOAT只保證6位有效數字的準確性,所以FLOAT(M,D)中,M=6時,數字通常是準確的。如果M和D都有明確定義,其超出範圍後的處理同decimal。
D取值範圍為0~30,同時必須=M。double只保證16位有效數字的準確性,所以DOUBLE(M,D)中,M=16時,數字通常是準確的。如果M和D都有明確定義,其超出範圍後的處理同decimal。
CHAR值時,在它們的右邊填充空格以達到指定的長度。當檢索到CHAR值時,尾部的空格被刪除掉,所以,我們在存儲時字符串右邊不能有空格,即使有,查詢出來後也會被刪除。在存儲或檢索過程中不進行大小寫轉換。
三、時間日期類型(5)
該“0”值如下:
請點擊輸入圖片描述
四、各種類型佔用的存儲
1.數值類型
請點擊輸入圖片描述
定點數的比較特殊,而且與具體版本也有關係,此處單獨解釋:
使用二進制格式將9個十進制(基於10)數壓縮為4個字節來表示DECIMAL列值。每個值的整數和分數部分的存儲分別確定。每個9位數的倍數需要4個字節,並且“剩餘的”位需要4個字節的一部分。下表給出了超出位數的存儲需求:
請點擊輸入圖片描述
2.時間日期
請點擊輸入圖片描述
從版本5.6.4開始,存儲需求就有所改變,根據精度而定。不確定部分需要的存儲如下:
請點擊輸入圖片描述
比如,TIME(0), TIME(2), TIME(4), 和TIME(6) 分別使用3, 4, 5, 6 bytes。
3.字符串
請點擊輸入圖片描述
4.類型的選擇
為了優化存儲,在任何情況下均應使用最精確的類型。
例如,如果列的值的範圍為從1到99999,若使用整數,則MEDIUMINT UNSIGNED是好的類型。在所有可以表示該列值的類型中,該類型使用的存儲最少。
用精度為65位十進制數(基於10)對DECIMAL 列進行所有基本計算(+、-、*、/)。
使用雙精度操作對DECIMAL值進行計算。如果準確度不是太重要或如果速度為最高優先級,DOUBLE類型即足夠了。為了達到高精度,可以轉換到保存在BIGINT中的定點類型。這樣可以用64位整數進行所有計算,根據需要將結果轉換回浮點值。
5.使用其他數據庫的SQL語句
為了使用為其它數據庫編寫的SQL執行代碼,MySQL按照下表所示對列類型進行映射。通過這些映射,可以很容易地從其它數據庫引擎將表定義導入到MySQL中:
請點擊輸入圖片描述
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/198231.html