您應該測試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
如果使用SQL的默認格式,那麼我認爲你應該檢查你的時間字符串是否是完全一樣的:'YYYY-MM-DD HH:MM:SS '希望這有助於 – 2011-03-23 03:07:10
這應該是一個標準的調試任務。分解第二個代碼塊中的混亂並找出錯誤的位置。 – ses011 2011-03-23 04:14:12
這篇文章的標題是沒有意義的 – 2011-03-23 10:26:41