2014-02-10 155 views
0

我有日期字符串:字符串轉換爲日期時間以特定格式

Fri Oct 25 22:52:21 2013 

我想把它轉換成日期時間格式,同時把它發送到數據庫。

我試着查詢爲:

insert into 
DeccoRaw values 
('A04','005629','ARROW STEPLADDER 3TREAD 13013', 
19.89,1,35.8,'NETT',19.89,'5010845130133', 
cast('Fri Oct 25 22:52:21 2013' as DateTime), 
20,'LADDERS','D19206','A','N','13013',29,'','','','','') 

我使用C#.NET

它給我的錯誤:

Msg 241, Level 16, State 1, Line 1 
Conversion failed when converting date and/or time from character string. 

當我把它轉換在C#中爲: DateTime.Parse('Fri Oct 25 22:52:21 2013')

錯誤:

string was not recognized as valid datetime

+2

爲什麼使用未將其轉換DateTime方法,而不是在查詢中這樣做? – Max

+0

@MaxMommersteeg它給了我錯誤:字符串未被識別爲有效的日期時間 –

回答

2

由於非標準格式,則可能需要將其插入到數據庫之前,解析與ParseExact的stirng:

string dateString = "Fri Oct 25 22:52:21 2013"; 
DateTime dateTime = DateTime.ParseExact(dateString, "ddd MMM d HH:mm:ss yyyy", CultureInfo.InvariantCulture); 
+0

這對我有幫助......謝謝 –

+0

先生,當我有'星期五10月5日22:52:21 2013'作爲字符串它給我錯誤 –

+0

單個數字日期給出錯誤 –

2

子字符串刪除第一個字符,因爲你不星期幾的名字。我不確定它總是3個字符,因此您可能需要添加某種測試來查找第一個空間實例。

declare @crap as nvarchar(2000) 
set @crap = 'Fri Oct 25 22:52:21 2013' 
select CONVERT(datetime , substring(@crap,4,len(@crap))) 

然後,您可以使用直接插入喜歡的東西做的這個也許

insert into DeccoRaw values 
('A04','005629','ARROW STEPLADDER 3TREAD 13013', 
    19.89,1,35.8,'NETT',19.89,'5010845130133', 
    CONVERT(datetime , substring('Fri Oct 25 22:52:21 2013' ,4,len('Fri Oct 25 22:52:21 2013')))  
    20,'LADDERS','D19206','A','N','13013',29,'','','','','') 

瘋狂的方式,但你說你想strickly SQL。

0

嘗試檢查你的約會的類型數據的基礎,否則的格式使用這麼短的時間,長......而這種格式您通過日期時間 的字符串轉換convert date

相關問題