2011-09-12 79 views
0

我有一個允許客戶輸入日期/時間的網頁,我希望能夠存儲該變量,然後將該時間添加到午夜之前,將其存儲爲第二個變量並將其存儲爲把它傳遞給我的sql服務器。有沒有簡單的方法來做到這一點?從存儲變量中查找午夜

+0

你基本上要到午夜在當前的時間差? (即時間跨度) –

回答

1

當然,你可以這樣做:

var midnightDateNExtDay = DateTime.Now.AddDays(1).Date; 
    //AddDays moves time to next day 
    // Date should omit the time and make it midnight 

你的意思午夜前一個或下一天?然後,使用這個參數,將它傳遞給存儲過程或查詢。

0

如果你想要的差異,你可以做這樣的事情,並將總秒數傳遞給sql server。這取決於你想如何存儲這個儘管在SQL端?

 

TimeSpan span = DateTime.Now.Subtract(DateTime.Now.AddDays(1).Date); 
//do whatever with span.TotalSeconds 
 

編輯 看來你也想知道如何發送到這一點你的程序:

注意到這一假設的連接字符串設置在您的應用程序的配置文件。如果不將ConfigurationManager.ConnectionStrings [0] .ConnectionString替換爲「server = whatever; uid; whatever; pwd = whatever;」爲您的測試(我建議你不要在代碼中嵌入他們雖然)

 

using (SqlConnection connection = new 
SqlConnection(ConfigurationManager.ConnectionStrings[0].ConnectionString)) 

{ 


var midnight = DateTime.Now.AddDays(1).Date; 

    using (SqlCommand command = new SqlCommand("Proc_Whatever", connection)) 
    { 
    command.Parameters.Add(new SqlParameter("@MidnightDate", midnight)); 
    command.CommandType = CommandType.StoredProcedure; 
    connection.Open(); 
    command.ExecuteNonQuery(); 
    } 

} 

+0

亞當,我將如何去存儲第二個值作爲一個變量,雖然?例如,我嘗試使用類似下面的代碼:If DateTime.TryParse(dateTextBox.Text,myDate)Then 'Conversion was successful,the data is in myDate newDate = myDate.AddDays(1) –

+0

我是不確定我是否遵循100%是否意味着存儲在數據庫中?在這種情況下,您可以將span.TotalSeconds存儲在數據庫的int字段中。你想從更高的水平嘗試完成什麼,也許有更好的方法來攻擊整體問題 –

+0

Adam,我有一個文本框,用戶輸入一個開始時間,我的存儲過程是他們輸入結束的時間,但用戶沒有輸入結束時間,只是開始時間。 –