2013-07-31 108 views
0

我有一個需要轉換爲標準查詢的存儲過程。由於我使用SQL Server Compact,因此沒有存儲過程。如何將存儲過程轉換爲SQL Server Compact Edition查詢

這裏是我的存儲過程:

declare @colu nvarchar (max) , @hour int 
set @hour = DATEPART(HH, GETDATE()) 
select @hour 
select @colu = 

case when @hour=24 
then '[12:00AM(00:00)]' 
enter code here 
when @hour >12 and @hour <24 
then '['+ convert(varchar,@hour-12) +':00PM('+ convert(nvarchar ,@hour) +':00)]' 
when @hour=12 
then '[12:00PM(12:00)]' 
when @hour <12 and @hour >9 
then '['+convert(nvarchar ,@hour) +':00AM('+ convert(nvarchar ,@hour) +':00)]' 
else '['+convert(nvarchar ,@hour) +':00AM(0'+ convert(nvarchar ,@hour) +':00)]' 
end 

select @colu 
declare @sql nvarchar(max) 
set @sql= 'select ID,'''+ @colu + ''' as time from table' -- add quote here 
select @sql 
exec sp_executesql @sql 

就像我說的,我是那種在這裏難住了。有任何想法嗎?

+0

99%是剛建'@ colu'字符串,你可以在你的開發語言做因爲它看起來像基於當前日期的基本變換? –

+0

這將是非常有用的告訴我們[你試圖完成](http://meta.stackexchange.com/questions/66377/),而不僅僅是你決定使用什麼技術。特別是因爲你的exec將會把結果扔掉,而不是對它做任何事情。 –

+0

沒關係,我可以使用C#代碼進行工作,以計算一天中的什麼時間。如果這會對其他人有幫助,我可以發佈該代碼。 – bbcompent1

回答

0

這裏是我用來確定的時間價值和動態指定列名的代碼:那

  float basalrate = 0; 
     DateTime HourVal = Convert.ToDateTime(PumpEditTime); 
     if (HourVal == null) 
     { 
      HourVal = DateTime.Now; 
     } 
     int hourval = HourVal.Hour; 
     int ampmhour = Convert.ToInt32(HourVal.ToString("hh")); 
     string hourampm = string.Empty; 

     if (hourval == Convert.ToInt32("24")) 
     { 
      hourampm = "[12:00AM(00:00)]"; 
     } 
     else if ((hourval > 12) && (hourval < 24)) 
     { 
      hourampm = "[" + ampmhour + ":00PM(" + hourval + ":00)]"; 
     } 
     else if (hourval == 12) 
     { 
      hourampm = "[12:00PM(12:00)]"; 
     } 
     else if ((hourval < 12) && (hourval > 9)) 
     { 
      hourampm = "[" + ampmhour + ":00AM(" + hourval + ":00)]"; 
     } 
     else 
     { 
      hourampm = "[" + ampmhour + ":00AM(0" + hourval + ":00)]"; 
     } 
相關問題