[英]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.