Сравнение Datetime SQL-сервера и asp.net - PullRequest
0 голосов
/ 13 марта 2019

Я делаю функцию, которая отменяет заказ только , если он находится в пределах 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();

Пока что я взял только дату и время из базы данных, мне было интересно, как вы можете получить текущее время и получить разницу, скажем, минут или часов , чтобы Я могу сделать условное заявление, чтобы разрешить или запретить отмену заказа. Я довольно новичок в этом, и любая помощь будет оценена! Спасибо!

Ответы [ 3 ]

2 голосов
/ 13 марта 2019

Используйте DateDiff, сравнивая выбранный столбец с датой сейчас и используйте разницу MINUTE:

SELECT DATEDIFF(MINUTE, OrderDate , getdate()) AS MinuteDiff from [Order] where orderid =123
0 голосов
/ 13 марта 2019

Вы также можете использовать метод DateTime.Compare. Что-то вроде

If(DateTime.Compare(supplier.OrderDate, DateTime.Now) < 60)
{  
   //Enable Cancel/Delete Order
}
0 голосов
/ 13 марта 2019

Если вам нужно сделать это в приложении, а не в запросе SQL, вы можете сделать что-то вроде:

var timeSinceOrder = DateTime.Now - supplier.OrderDate;

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

DateTime.Now возвращает текущее время.Вычитание даты заказа из текущего времени возвращает временной интервал, который затем можно сравнить с другим временным интервалом, в данном случае созданным функцией Timespan.FromHours.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...