Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 比较Datetime SQL server和asp.net_C#_Sql_Asp.net_Sql Server_Ado.net - Fatal编程技术网

C# 比较Datetime SQL server和asp.net

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 (

我正在制作一个函数,仅当订单在60分钟内时才会取消该订单,建议我将订单的日期时间值与当前日期时间进行比较

        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!谢谢你的帮助。我尝试了这个代码,它工作得非常完美。干杯嘿,安德鲁!谢谢你的帮助。我尝试了这个代码,它工作得非常完美。干杯