簡體   English   中英

比較Datetime SQL Server和ASP.NET

[英]Comparing Datetime SQL server and asp.net

我正在制作一個60分鍾內取消訂單的函數,建議我將訂單的datetime值與當前datetime進行比較。

        using (SqlConnection con = new SqlConnection(Helper.GetCon()))
        {
            con.Open();
            string query = @"SELECT * from [Order] where orderid = @id";
            using (SqlCommand cmd = new SqlCommand(query, con))
            {
                cmd.Parameters.AddWithValue("@id", id);
                using (SqlDataReader data = cmd.ExecuteReader())
                {
                    DataTable dt = new DataTable();
                    dt.Load(data);
                    foreach (DataRow dr in dt.Rows)
                    {
                        var supplier = new Supplier();
                        supplier.OrderDate = DateTime.Parse(dr["OrderDate"].ToString());
                    }
                }
            }
            return View();

到目前為止,我只從數據庫中獲取了日期時間,我想知道如何獲取當前日期時間並獲得分鍾小時的差異,以便我可以做出條件語句來允許或不允許取消訂購。 我對此很陌生,任何幫助將不勝感激! 謝謝!

使用DateDiff,將所選日期列與現在進行比較,並使用MINUTE差異:

SELECT DATEDIFF(MINUTE, OrderDate , getdate()) AS MinuteDiff from [Order] where orderid =123

如果必須在應用程序中而不是在SQL查詢中執行此操作,則可以執行以下操作:

var timeSinceOrder = DateTime.Now - supplier.OrderDate;

if(timeSinceOrder < TimeSpan.FromHours(1))
{
    //do stuff here
}

DateTime.Now獲取當前時間。 從當前時間中減去訂單日期將返回一個時間跨度,然后您可以將其與另一個時間跨度進行比較,在這種情況下,此時間跨度是由功能Timespan.FromHours創建的。

您也可以使用DateTime.Compare方法。 就像是

If(DateTime.Compare(supplier.OrderDate, DateTime.Now) < 60)
{  
   //Enable Cancel/Delete Order
}

暫無
暫無

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

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