2011-03-23 32 views
-3

有麻煩這一點使用上的前端和後端sql2008r2視覺工作室2010年的工作有一個Web應用程序獲取此錯誤的Transact SQL幫助

「錯誤插入record.Conversion失敗從字符串轉換日期和/或時間時, 「。

我有這些字段和數據類型

StartDate value=date 
StartTime value=varchar(8) 
EndDate value = date 
EndTime value=varchar(8) 

我想這兩個STARTDATE +開始時間加入到一個customstartdate場,但它得到一個錯誤轉換

convert(varchar(10), @StartDate,101) + 
    stuff(right(convert(varchar(26),@StartTime,109),15),7,7, ' '), 
    convert(varchar(10),@EndDate, 101) + 
    stuff(right(convert(varchar(26),@EndTime,109),15),7,7, ' '), 
+0

如果使用SQL的默認格式,那麼我認爲你應該檢查你的時間字符串是否是完全一樣的:'YYYY-MM-DD HH:MM:SS '希望這有助於 – 2011-03-23 03:07:10

+0

這應該是一個標準的調試任務。分解第二個代碼塊中的混亂並找出錯誤的位置。 – ses011 2011-03-23 04:14:12

+3

這篇文章的標題是沒有意義的 – 2011-03-23 10:26:41

回答

1

您應該測試SQL Management Studio中的轉換以查看返回結果。

declare @StartDate datetime = getdate() 
declare @EndDate datetime = getdate() 
declare @StartTime varchar(8) = '10:00:00' 
declare @EndTime varchar(8) = '11:00:00' 

select 
convert(varchar(10), @StartDate,101) + 
    stuff(right(convert(varchar(26),@StartTime,109),15),7,7, ' ') as StartDate, 
    convert(varchar(10),@EndDate, 101) + 
    stuff(right(convert(varchar(26),@EndTime,109),15),7,7, ' ') as EndDate 

結果

StartDate   EndDate 
------------------- ------------------- 
03/23/201110:00: 03/23/201111:00: 

你也可以打破你轉換成幾部分,所以你看看會發生什麼

select 
    convert(varchar(10), @StartDate,101) as DatePart, 
    convert(varchar(26),@StartTime,109) as Time26, 
    right(convert(varchar(26),@StartTime,109),15) as Time15, 
    stuff(right(convert(varchar(26),@StartTime,109),15),7,7, ' ') as TimeStuff 

結果

DatePart Time26      Time15   TimeStuff 
---------- -------------------------- --------------- --------- 
03/23/2011 10:00:00     10:00:00  10:00: 

這是我會怎麼做。結果是一個日期時間。

select 
    convert(datetime, convert(varchar(10), @StartDate, 101)+' '[email protected]) as StartDate, 
    convert(datetime, convert(varchar(10), @EndDate, 101)+' '[email protected]) as EndDate 

結果

StartDate    EndDate 
----------------------- ----------------------- 
2011-03-23 10:00:00.000 2011-03-23 11:00:00.000 
+0

感謝您的幫助,我會分解它,看看發生了什麼真的很感激它 – Michael 2011-03-23 15:51:08