C# 比较Datetime SQL server和asp.net
我正在制作一个函数,仅当订单在60分钟内时才会取消该订单,建议我将订单的日期时间值与当前日期时间进行比较C# 比较Datetime SQL server和asp.net,c#,sql,asp.net,sql-server,ado.net,C#,Sql,Asp.net,Sql Server,Ado.net,我正在制作一个函数,仅当订单在60分钟内时才会取消该订单,建议我将订单的日期时间值与当前日期时间进行比较 using (SqlConnection con = new SqlConnection(Helper.GetCon())) { con.Open(); string query = @"SELECT * from [Order] where orderid = @id"; using (
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();
到目前为止,我只从数据库中获取了datetime,我想知道如何获取当前的datetime,以及以分钟或小时计算的差值,这样我就可以做出一个条件语句来允许或不允许取消订单。我是个新手,任何帮助都将不胜感激!
谢谢大家! 使用DateDiff,将所选日期列与now进行比较,并使用分钟差:
SELECT DATEDIFF(MINUTE, OrderDate , getdate()) AS MinuteDiff from [Order] where orderid =123
使用DateDiff,将所选日期列与now进行比较,并使用分钟差:
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
}
var timeSinceOrder=DateTime.Now-supplier.OrderDate;
if(timeSinceOrder
DateTime。现在获取当前时间。从当前时间减去订单日期将返回一个时间跨度,您可以将该时间跨度与另一个时间跨度进行比较,在本例中,该时间跨度是由函数timespan.FromHours创建的。如果必须在应用程序中而不是在SQL查询中执行此操作,则可以执行以下操作:
var timeSinceOrder = DateTime.Now - supplier.OrderDate;
if(timeSinceOrder < TimeSpan.FromHours(1))
{
//do stuff here
}
var timeSinceOrder=DateTime.Now-supplier.OrderDate;
if(timeSinceOrder
DateTime。现在获取当前时间。从当前时间减去订单日期将返回一个时间跨度,您可以将该时间跨度与另一个时间跨度进行比较,在本例中,该时间跨度是由函数timespan.FromHours创建的。您也可以使用DateTime.compare方法。差不多
If(DateTime.Compare(supplier.OrderDate, DateTime.Now) < 60)
{
//Enable Cancel/Delete Order
}
If(DateTime.Compare(supplier.OrderDate,DateTime.Now)<60)
{
//启用取消/删除订单
}
您也可以使用DateTime.Compare方法。差不多
If(DateTime.Compare(supplier.OrderDate, DateTime.Now) < 60)
{
//Enable Cancel/Delete Order
}
If(DateTime.Compare(supplier.OrderDate,DateTime.Now)<60)
{
//启用取消/删除订单
}
您希望在SQL Server或您的应用程序(使用C#)中过滤此数据吗?我现在更希望在我的应用程序中过滤此数据请参见msdn:您希望在SQL Server或您的应用程序(使用C#)中过滤此数据吗?我现在更希望在我的应用程序中过滤此数据请参见msdn:Hey@Andrew!谢谢你的帮助。我尝试了这个代码,它工作得非常完美。干杯嘿,安德鲁!谢谢你的帮助。我尝试了这个代码,它工作得非常完美。干杯