castsqlserver
① sql server cast () 字元串轉換成時間的問題
好像不能直接轉吧~~
拆分你的字元串:
SELECT CONVERT(char(10),CAST( LEFT('20091014191338',8) AS datetime ),121) + ' '+SUBSTRING('20091014191338',9,2) + ':'+RIGHT('20091014191338',2) + ':00.000'
② cast sqlserver 201302261640 轉成日期格式
select convert(datetime,substring(日期欄位,1,4)+'-'+substring(日期欄位,5,2)+'-'+substring(日期欄位,7,2)+' '+substring(日期欄位,9,2)+':'+substring(日期欄位,11,2)+':'+substring(日期欄位,3,2))
from xxx
③ 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作為時間戳
④ SQL SERVER中強制類型轉換cast和convert的區別
SQL中cast
和convert都是用來將一種數據類型的表達式轉換為另一種數據類型的表達式。CAST
和
CONVERT
提供相似的功能,只是語法不同。
在時間類型轉化中一般用到convert,因為它比cast多加了一個style,可以轉化成不同時間的格式。
一、使用語法:
1、CAST
(
expression
AS
data_type
)
2、CONVERT
(data_type[(length)],
expression
[,
style])
參數說明:
expression:是任何有效的表達式。
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
數據類型)。
二、腳本示例
select CAST('1234' as int) -- 1234
select CONVERT(int, '1234') -- 1234
select CAST(123.4 as int) -- 123
select CONVERT(int, 123.4) -- 123
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 moneyset @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
CONVERT(VARCHAR(19),GETDATE()) --Dec 29 2016 11:45 PM
CONVERT(VARCHAR(10),GETDATE(),110) --12-29-2016
CONVERT(VARCHAR(11),GETDATE(),106) --29 Dec 16
CONVERT(VARCHAR(24),GETDATE(),113) --29 Dec 2016 16:25:46.635三、convert函數的style參數說明
1、時間style
2、float
和
real
樣式
3、money
和
smallmoney
樣式
⑤ 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
⑥ sqlserver cast有什麼用途
cast(expression
as
transform_type)
表示把
expression
欄位轉換成transform_type類型的數據輸出
返回transform_type
類型數據;
備註:cast不且有四捨五入的數據截取功能,故cast('12.5'
as
int)系統會報錯,
可為cast('12.5'
as
decimal(9,2))
實例:
假定產品經理已經創建了一個系統,用於唯一地標識生產出來的每輛自行車,以便跟蹤其
型號、類型和類別。他決定合並產品號、產品生產線標識符、產品型號標識符和一個順序號,
為生產出來的每輛自行車創建一個唯一的序列號。在這個過程的第一步,他要求提供包括除順序號
之外的所有屬性的所有可能產品的根標識符。
實現:
1.SELECT
ProctNumber
2.
+
'-'
3.
+
ProctLine
4.
+
'-'
5.
+
CAST(ProctModelID
AS
char(4))
AS
BikeSerialNum
6.FROM
Proction.Proct
7.WHERE
ProctSubCategoryID
<
4
⑦ 在sqlserver存儲過程中如何切換資料庫
不一定非要在存儲過程中轉換,用普通的sql語句就可以,一般用cast函數。
測試方法:
創建表及插入數據:
create table test
(id int,
starttime varchar(20));
insert into test values (1,'2015-07-11');
將starttime欄位轉化為datetime類型:
select cast(starttime as datetime) from test;
結果如圖,這時,starttime就轉成了datetime類型:
⑧ 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 數據隱性地轉換到其它數據類型的對象
⑨ SqlServer函數的類型轉換函數
convert (數據類型[(長度)],表達式[,樣式])
將一種數據類型的表達式顯式轉換為另一種數據類型的表達式;
長度:如果數據類型允許設置長度,可以設置長度,例如 varchar(10);
樣式:用於將日期類型數據轉換為字元數據類型的日期格式的樣式。
詳細可以參照安安DIY創作室的一篇文章:《sqlserver datetime轉換成帶格式的字元串》
cast (表達式 AS 數據類型[(長度)])
將一種數據類型的表達式顯式轉換為另一種數據類型的表達式。
例如:select cast(123 as nvarchar) 返回123
select N'年齡:' + cast(23 as nvarchar) 返回 年齡:23
⑩ sqlserver中查詢語句中的cast是什麼意思
cast和convert都是sqlserver的數據類型轉換函數。
比如
cast ('123' as int)將字元轉換成數字。