[英]SQL Server: Convert varchar numbers to date
是否可以將varchar數字轉換為日期? 我正在從表中獲取數據,並且希望將其轉換為日期。 你能幫我解決這個問題嗎? 最后一部分有錯誤:
從varchar數據類型到datetime數據類型的轉換導致值超出范圍。
declare @year varchar(6)
declare @month varchar(2)
declare @test varchar (8)
set @year = right(left('F20160316-1000',5),4)
select @year
set @month = right(left('F20160316-1000',7),2)
select @month
set @test = @month +''+ @year
select @test
SELECT CONVERT (DATETIME, CONVERT(varchar(12),@test))
無論如何,我要達到的結果是MAR2016
。
正如Jarlh所指出的那樣,您存儲和轉換的方式並不好。您可以使用datetimefrom部件來獲取輸出,以防萬一,我補充說。
declare @year varchar(6)
declare @month varchar(2)
declare @day varchar (8)
set @year = right(left('F20160316-1000',5),4)
set @month = right(left('F20160316-1000',7),2)
Set @day=right(left('F20160316-1000',5),2)
select datetimefromparts(@year,@month,@day)
此外,如果您的字符串模式相同,您也可以這樣做。
declare @string varchar(15)
set @string='F20160316-1000'
select convert(datetime,substring(@string,2,charindex('-',@string,1)-2)
輸出: 2016-03-16 00:00:00.000
這樣嘗試
DECLARE @year VARCHAR(6)
DECLARE @month VARCHAR(2)
DECLARE @test VARCHAR(8)
SET @year = right(left('F20160316-1000', 5), 4)
SET @month = right(left('F20160316-1000', 7), 2)
SET @test = @year + @month + '01'
SELECT UPPER(CONVERT(VARCHAR(3), DATENAME(MM, @test), 100)) + @year AS MonthYear
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.