A. sql表中,有year,month,day三個欄位(smallint),怎樣將這三個欄位合並成date欄位,顯示成日期格式謝
select cast(cast(year as varchar(10))+'-'+cast(month as varchar(10))+'-'+cast(day as varchar(10)) as datetime) date from 表
--解釋,先把年月日組合在一起,變成 年-月-日,然後轉換為datetime類型。
B. sql怎麼講整型轉換為日期型好麻煩!!!
當然不行了。整型不能直接轉換成時間。
可以用一個語句來實現:
declare @a int
set @a=20110320
select convert(datetime,cast(@a as varchar(8)),21)
C. SQL里cast的用法是什麼
Select cast(getdate() as varchar(10))
強制將類型轉換,上面就是將日期類型轉為字元類型
D. sql 怎麼把日期類型的數據轉換成數字類型
用cast函數來進行轉換。先利用cast函數將數字型轉為字元型,再用一次cast函數將字元型轉為日期型。
E. SQL中CAST和CONVERT用在時間轉換上的區別(我新手,越詳細越好)
cast 和convert都是用來轉化數據類型的,功能上是差不多的。
表達式:CAST ( expression AS data_type ) ,
CONVERT (data_type[(length)], expression [, style]),
在時間轉化中一般用到convert,因為它比cast多加了一個style,可以轉化成不同時間的,打個簡單的例子吧,比方說查找一下當前的時間,select getdate(),而我們只需要到年月日而已,這時我們就可以把它轉化為select convert(varchar(100),GETDATE(),111)轉化成我們需要的,而select CAST(GETDATE() as varchar(30))cast就沒辦法或者是轉化過程比較繁瑣,convert時間後面的style值不同產生的時間格式也不一樣,具體可參看網站http://www.w3school.com.cn/sql/func_convert.asp
F. SQL server cast () 字元串轉換成時間的問題
好像不能直接轉吧~~
拆分你的字元串:
SELECT CONVERT(char(10),CAST( LEFT('20091014191338',8) AS datetime ),121) + ' '+SUBSTRING('20091014191338',9,2) + ':'+RIGHT('20091014191338',2) + ':00.000'
G. SQL中CAST和CONVERT的區別是什麼
如果SQL Server程序員想將表達式從一種換為另一種,他可以從SQL Server 7和2000中自帶的兩種功能中做出選擇。在存儲過程或其他情況下,我們常常需要將數據從datetime型轉化成varchar型;CONVERT和CAST就可以用於這種情況。
由於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作為時間戳;
H. 在sql中如何將timestamp轉化為date類型,用cast轉只有日期部分,沒有時間部分,如何
樓主使用的是MSSQL還是ORCALE 或者其他?每種資料庫對CAST的函數定義都不太一樣;
MSSQL中要定義轉換的類型,就是那些什麼112,108之類的類型,具體每個代表什麼類型忘記了,可以自己嘗試一下;select cast(datetime,'轉換的數據',112)
在oracle中就沒那麼復雜了,oracle有一點討厭的是要先to_date一下,select cast(to_date('2013-11-22 15:33:12','yyyy-mm-dd hh24:mi:ss') as date) from al; 實際上在oracle也很少用到這個函數;
I. sql中日期函數
這樣就行了,注意你cast成nvarchar類型,那麼『年』這種字元串前一定要加N,:
declare @Year int
declare @Month int
select @Year =2010
select @Month =12
select
case when @Month = 12 then cast(@Year+1 as nvarchar)+N'年'+cast(@Month-11 as nvarchar)+N'月01'
else
cast(@Year as nvarchar)+N'年'+cast(@Month+1 as nvarchar)+N'月01' end+N'至'+
case when @Month = 12 then cast(@Year+1 as nvarchar)+N'年'+cast(@Month-11 as nvarchar)+N'月30'
else
cast(@Year as nvarchar)+N'年'+cast( @Month+1 as nvarchar)+N'月30' end
我也不知道你到底想要什麼東西,如果用datediff的話得到的就是一個天數,也沒有必要加上年月日了:
declare @Year int
declare @Month int
select @Year =2010
select @Month =4
select
datediff
(day,
case when @Month = 12 then cast(@Year+1 as nvarchar)+' '+cast(@Month-11 as nvarchar)+' 01'
else
cast(@Year as nvarchar)+' '+cast(@Month+1 as nvarchar)+' 01' end,
cast(@Year as nvarchar)+' '+cast( @Month as nvarchar)+' 01' )
J. SQL中如何將數字型轉換為日期型
平時為了方便存儲和查詢,通常會選擇將時間存儲為毫秒或者秒的形式。但是頁面顯示的時候很不直觀,需要將整型數字轉化成日期格式,轉化方式包括下面幾種:
1、秒數與Date之間的轉換:select from_unixtime(1388776825);
如果想逆向轉換,可以通過unix_timestamp()函數反向轉換。用法如下:
SELECT UNIX_TIMESTAMP() ;//獲取當前時間的秒數
SELECT UNIX_TIMESTAMP('2014-03-23 10:10:40') ; //獲取指定日期格式的秒數
SELECT UNIX_TIMESTAMP('2014-03-23') ; //獲取指定日期格式的秒數
(10)sql中cast日期擴展閱讀:
一、date型換int型
SELECT UNIX_TIMESTAMP(『2017-9-22 13:54:45』)
二、int型轉date型
SELECT FROM_UNIXTIME(1506059685)
需要注意的是,一個int值轉換為DateTime 需要從1970年1月1日0點0分0秒開始,但是必須明確,這個時間是標准時間,而不是北京時間。
資料庫中數據的時間都是以標准時間為准繩的。所以必須轉換到當前時間, 中國是+8 ,可以簡單的調用ToLocalTime達到效果。