2017-07-19 68 views
0

我有一列stocked作爲nvarchar(50)包含這種格式的日期('yyyy/mm/dd'),我想將它轉換爲日期,所以我可以做一些日期和時間來做進一步的比較。SQL服務器將字符串轉換爲日期列

什麼,我到目前爲止一直看到(當時很多關於石膏和轉換),總是導致類似的東西:

「消息242,級別16,狀態3,行1 將varchar數據類型轉換爲日期時間數據類型導致超出範圍的值。「

+0

第一個數據庫設計錯誤:_I有一個列存儲爲nvarchar(50)包含dates_更改列是日期 – RiggsFolly

+0

mysql或sql server? –

+0

使用[STR_TO_DATE](https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_str-to-date) –

回答

0

使用

ISDATE(表達式)

返回1,如果該表達式是有效的日期,時間,或日期時間值; 否則爲0.

1

很有可能您的數據無法正確轉換。您可以使用查詢像下面來看看這個問題的數據(這個作品在SQL服務器2012及以上)

declare @tableName table(stocked nvarchar(50)); 
insert into @tableName values 
('2017/12/31'),('2017/11/11'),('2017/11/13'),('2017/13/11'); 
SET DATEFORMAT ymd; 

select 
stocked, 
TRY_PARSE(stocked as datetime) 
from @tableName 
where TRY_PARSE(stocked as datetime) is NULL; 
0

Basicly我有我插入到SQL Server 2014的Excel表格,沒有管理就轉換數據迄今在插入,但我想這將是少於工作的插入方式比以後轉換它的痛苦