當前位置:首頁 » 數據倉庫 » 資料庫強制類型轉換
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫強制類型轉換

發布時間: 2022-09-19 14:20:13

sql SERVER中強制類型轉換cast和convert的區別

由於SQL
Server提供兩種功能,因此應該選擇哪種功能或應該在哪種情況下使用該功能就很容易讓人困惑了。CONVERT是專對SQL
Server使用的,使日期與時間值,小數之間轉換具有更寬的靈活性。
CAST是兩種功能中更具ANSI標準的功能,即雖然更具便攜性(比如,使用CAST的函數能更容易的被其它資料庫軟體使用),但功能相對弱一些。不過,當小數轉化為數值,並保留原始表達式中的小數數值時,仍然需要使用CAST。因此,我建議首先使用CAST,如果遇到必須使用CONVERT的情況時再使用CONVERT。
CAST和CONVERT還能聯合使用,達到特殊的效果。比如,在current
date下生成char變數一般使用以下方法:
SELECT
CONVERT(CHAR(10),
CURRENT_TIMESTAMP,
102)
(102表明使用了ANSI日期模式,即yy.mm.dd型)
然而,如果你希望將這個變數明確生成為datetime或smalldatetime變數,以此在特定的資料庫欄中兼容,那麼你可以使用以下語句:
SELECT
CAST(CONVERT(CHAR(10),CURRENT_TIMESTAMP,102)
AS
DATETIME
返回值將是
yy.mm.dd
00:00:00(如12:00AM作為時間戳

❷ sqlserver2008 布爾類型強制轉換數字類型

--資料庫默認布爾類型是bit類型bit0或者1應可支持轉換數字類型
--使用CAST:CAST(expressionASdata_type)
--使用CONVERT:CONVERT(data_type[(length)],expression[,style])
selectconvert(int,欄位)或cast(欄位asint)

希望能幫到你!

以前回答案例,可參考下如:

參考:http://..com/question/586478323

❸ SQL SERVER中強制類型轉換cast和convert的區別

將某種數據類型的表達式顯式轉換為另一種數據類型。CAST 和 CONVERT 提供相似的功能。 語法
使用 CAST: CAST ( expression AS data_type ) 使用 CONVERT: CONVERT (data_type[(length)], expression [, style]) 參數
expression 是任何有效的 Microsoft SQL Server" 表達式。有關更多信息,請參見表達式。 data_type 目標系統所提供的數據類型,包括 bigint 和 sql_variant。不能使用用戶定義的數據類型。有關可用的數據類型的更多信息,請參見數據類型。 length nchar、nvarchar、char、varchar、binary 或 varbinary 數據類型的可選參數。 style 日期格式樣式,藉以將 datetime 或 smalldatetime 數據轉換為字元數據(nchar、nvarchar、char、varchar、nchar 或 nvarchar 數據類型);或者字元串格式樣式,藉以將 float、real、money 或 smallmoney 數據轉換為字元數據(nchar、nvarchar、char、varchar、nchar 或 nvarchar 數據類型)。

將某種數據類型的表達式顯式轉換為另一種數據類型。有關可用的數據類型的更多信息,請參見數據類型。日期格式樣式,藉以將 datetime 或 smalldatetime 數據轉換為字元數據(nchar、nvarchar、char、varchar、nchar 或 nvarchar 數據類型);或者字元串格式樣式,藉以將 float、real、money 或 smallmoney 數據轉換為字元數據(nchar、nvarchar、char、varchar、nchar 或 nvarchar 數據類型)。當轉換為字元數據時輸出。
隱性轉換對於用戶是不可見的。
SQL Server 自動將數據從一種數據類型轉換成另一種數據類型。例如,如果一個 smallint 變數和一個 int 變數相比較,這個 smallint 變數在比較前即被隱性轉換成 int 變數。 顯式轉換使用 CAST 或 CONVERT 函數。
CAST 和 CONVERT 函數將數值從一個數據類型(局部變數、列或其它表達式)轉換到另一個數據類型。例如,下面的 CAST 函數將數值 $157.27 轉換成字元串 ''$157.27'':CAST ( $157.27 AS VARCHAR(10) )
CAST 函數基於 SQL-92 標准並且優先於 CONVERT。 當從一個 SQL Server 對象的數據類型向另一個轉換時,一些隱性和顯式數據類型轉換是不支持的。例如,nchar 數值根本就不能被轉換成 image 數值。nchar 只能顯式地轉換成 binary,隱性地轉換到 binary 是不支持的。nchar 可以顯式地或者隱性地轉換成 nvarchar。 當處理 sql_variant 數據類型時,SQL Server 支持將具有其它數據類型的對象隱性轉換成 sql_variant 類型。然而,SQL Server 並不支持從 sql_variant 數據隱性地轉換到其它數據類型的對象

❹ SQL SERVER中強制類型轉換cast和convert的區別

在SQL SERVER中,cast和convert函數都可用於類型轉換,其功能是相同的,
只是語法不同.
cast一般更容易使用,convert的優點是可以格式化日期和數值.

代碼
select CAST('123' as int) -- 123
select CONVERT(int, '123') -- 123

select CAST(123.4 as int) -- 123
select CONVERT(int, 123.4) -- 123

select CAST('123.4' as int)
select CONVERT(int, '123.4')
-- Conversion failed when converting the varchar value '123.4' to data type int.

select CAST('123.4' as decimal) -- 123
select CONVERT(decimal, '123.4') -- 123

select CAST('123.4' as decimal(9,2)) -- 123.40
select CONVERT(decimal(9,2), '123.4') -- 123.40

declare @Num money
set @Num = 1234.56
select CONVERT(varchar(20), @Num, 0) -- 1234.56
select CONVERT(varchar(20), @Num, 1) -- 1,234.56
select CONVERT(varchar(20), @Num, 2) -- 1234.5600

❺ access 資料庫中怎麼實現數據類型轉換

  1. 函數:CBool 返回類型:Boolean

  2. 函數:CByte 返回類型:Byte

  3. 函數:CCur 返回類型:Currency

  4. 函數:CDate 返回類型:Date

  5. 函數:CDbl 返回類型:Double

  6. 函數:CDec 返回類型:Decimal

  7. 函數:CInt 返回類型:Integer(小數部分被四捨五入)

  8. 函數:CLng 返回類型:Long(小數部分被四捨五入)

  9. 函數:CSng 返回類型:Single

  10. 函數:CStr 返回類型:String

  11. 函數:CVar 返回類型:Variant

c語言:int型的強制類型轉換是按四捨五入嗎

作為函數,INT函數指資料庫中常用函數中的「向下取整函數」。常用來取一個數中的整數部分。Int是將一個數值向下取整為最接近的整數的函數。為取整函數。

意思是將被轉換數直接截取整數部分,不進行四捨五入運算。例如:

int(123.456);//取值為123

int(-123.456);//取值為124

int(1234.56);//取值為1234

(6)資料庫強制類型轉換擴展閱讀:

除int外,其他強制轉換有:

void:聲明函數無返回值或無參數,聲明無類型指針,顯示丟棄運算結果。(C89標准新增)

char:字元型類型數據,屬於整型數據的一種。(K&R時期引入)

int:整型數據,表示範圍通常為編譯器指定的內存位元組長。(K&R時期引入)

float:單精度浮點型數據,屬於浮點數據的一種。(K&R時期引入)

double:雙精度浮點型數據,屬於浮點數據的一種。(K&R時期引入)

_Bool:布爾型(C99標准新增)

_Complex:復數的基本類型(C99標准新增)

_Imaginary:虛數,與復數基本類型相似,沒有實部的純虛數(C99標准新增)

_Generic:提供重載的介面入口(C11標准新增)

修飾關鍵字:

short:修飾int,短整型數據,可省略被修飾的int。(K&R時期引入)

long:修飾int,長整型數據,可省略被修飾的int。(K&R時期引入)

long long:修飾int,超長整型數據,可省略被修飾的int。(C99標准新增)

signed:修飾整型數據,有符號數據類型。(C89標准新增)

unsigned:修飾整型數據,無符號數據類型。(K&R時期引入)

restrict:用於限定和約束指針,並表明指針是訪問一個數據對象的唯一且初始的方式。(C99標准新增)

❼ 資料庫中怎樣進行類型轉換

字元串和整數日期都可以轉換的。

1.當欄位類型為:INT;
2.傳入的值為:字元串類型;
3.WHERE條件中的整型欄位的傳入值用單引號或雙引號;
上述描述的前提條件下,會對把傳入的 值類型 轉換為 欄位定義的數據類型,故WHERE 條件是可以使用到索引的,但從資料庫表讀出到內存塊後的值會被 轉換為 傳入值的數據類型,從而導致ORDER BY無法使用到索引
解釋為何ORDER BY ID沒有外部排序 或extra的內容為空,那是因為WHERE ID='2' 按主鍵查詢只能查到唯一的一條記錄,故不需要排序;
ORDER BY tid 時,WHERE tid='2' 按普通索引去查找的話,能查找到的數據條數會大於1條,加上數據類型隱形轉換了,為此需要再額外進行排序和extra部分有內容顯示;

❽ 資料庫欄位類型強制轉換

改是能改,5位的你要舍掉一位,你舍哪位啊?

update table_name set date=substring(date,1,4) 這樣是從第一位取四位,把最後一位舍掉
然後你在alter表,把類型轉換了就行了

❾ 資料庫中轉換數據類型的幾種方法

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 al;

select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from al;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 al。

當前時間減去 7 年的時間。

select sysdate,sysdate - interval '7' year from al。

時間間隔乘以一個數字。

select sysdate,sysdate - 8 *interval '2' hour from al

2、日期到字元操作

select sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from al,select sysdate,to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from al,select sysdate,to_char(sysdate,'yyyy-ddd hh:mi:ss') from al。

select sysdate,to_char(sysdate,'yyyy-mm iw-d hh:mi:ss') from al。

3、字元到日期操作

select to_date('2003-10-17 21:15:37','yyyy-mm-dd hh24:mi:ss') from al。

具體用法和上面的 to_char 差不多。

4、TO_NUMBER

使用TO_NUMBER函數將字元轉換為數字

TO_NUMBER(char[, '格式'])

數字格式格式:

9 代表一個數字 。

0 強制顯示0 。

$ 放置一個$符 。

L 放置一個浮動本地貨幣符 。

. 顯示小數點 。

, 顯示千位指示符。

(9)資料庫強制類型轉換擴展閱讀:

在使用數據類型轉換之前,同樣的 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。

數據類型轉換,雖然看起來很痛苦,但是如果用戶的類型用的不對,查詢效率會下降。所以,在設計的時候,欄位的類型,一定要設計的合理,尤其是在關聯表的時候。