簡體   English   中英

將字符串轉換為特定格式的日期時間

[英]convert string to datetime in specific format

我有日期字符串為:

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')

錯誤:

字符串未被識別為有效的日期時間

我建議您使用DateTime方法。 請查看下面的鏈接,以獲取有關如何使用DateTime進行轉換的信息。

如何:在C#中將字符串轉換為DateTime

同樣,在將數據發送到數據庫之前,在轉換數據時更容易維護。 除非您特別想使用SQL進行轉換。 然后,我建議您看看下面的鏈接:

如何:在SQL Server中將字符串轉換為DateTime

由於格式不規范,您可能需要先使用ParseExact解析攪拌器,然后再將其插入數據庫:

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

子串可刪除第一個字符,因為您沒有輸入星期幾的名稱。 我不確定它始終是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,'','','','','')

做到這一點的瘋狂方式,但您說過您想要SQL。

嘗試檢查數據庫中日期的類型,否則檢查短日期,長日期...所使用的格式,並以這種格式通過DateTime 轉換日期轉換字符串

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM