Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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
如何将sql数据库中的日期与当前日期进行比较,以允许在C#mvc5中访问页面_C#_Sql_Asp.net Mvc - Fatal编程技术网

如何将sql数据库中的日期与当前日期进行比较,以允许在C#mvc5中访问页面

如何将sql数据库中的日期与当前日期进行比较,以允许在C#mvc5中访问页面,c#,sql,asp.net-mvc,C#,Sql,Asp.net Mvc,这对你们来说可能是一个非常基本的问题,但我对这个世界很陌生,每天都努力学习。我在标准dbo.AspNetUsers表中添加了一些列。其中一个是我想与当前日期时间进行比较的日期。数据库中的日期必须在将来,否则不允许它查看页面 我在控制器中尝试了一些方法: public string LicenseDate { get; set; } public string CurrentDate = DateTime.Now.ToString("dd-MM-yyyy"); public ActionResu

这对你们来说可能是一个非常基本的问题,但我对这个世界很陌生,每天都努力学习。我在标准dbo.AspNetUsers表中添加了一些列。其中一个是我想与当前日期时间进行比较的日期。数据库中的日期必须在将来,否则不允许它查看页面

我在控制器中尝试了一些方法:

public string LicenseDate { get; set; }
public string CurrentDate = DateTime.Now.ToString("dd-MM-yyyy");

public ActionResult Index()
if ((LicenseDate.Date - DateTime.Today).Days > 1)
    { do someting }
else
    return RedirectToAction("../Home/Buy");
有人能给我指出正确的方向吗?
谢谢

我只想使用
日期时间。比较

if (DateTime.Compare(DateTime.Parse(LicenseDate.Date), DateTime.UtcNow) > 0)
{ 
   //License Date Later 
}
else
{ 
   //License Date Equal To Or Earlier
}
假设
LicenseDate
是有效的日期字符串

public System.DateTime current = System.DateTime.Now;
public System.DateTime Licensedate {get; set}

if( Licensedate.Subtract(current).TotalDays >1 ){
    //... do somethink
}
它返回有几点需要注意的内容:

  • 函数上需要大括号
  • 在比较之前,需要将字符串转换为日期
  • 你可以使用DateTime.Compare或DateTime.Subtract来做你想做的事情
因此,以下更新的代码应该会让您更接近:

public string LicenseDate { get; set; }
public string CurrentDate = DateTime.Now.ToString("dd-MM-yyyy");

public ActionResult Index() {
   var licenseDateTime = Convert.ToDateTime(LicenseDate);
   if ((licenseDateTime.Subtract(DateTime.Today)).TotalDays > 1)
   {
       // do something
   } else {
       return RedirectToAction("../Home/Buy");
   }
}

希望有帮助

谢谢大家的建议!我尝试了一些选择,我没有留下任何错误。 但它不起作用,因为我认为LicenseDate没有很好地从数据库中“加载”。看起来当前日期与当前日期进行了比较:) 我确保数据库中的my字段是Datetime类型,并在开始时声明:

public DateTime LicenseDate { get; set; }
我的桌子是这样的:

CREATE TABLE [dbo].[AspNetUsers] (
    [Id]            NVARCHAR (128) NOT NULL,
    [UserName]      NVARCHAR (MAX) NULL,
    [PasswordHash]  NVARCHAR (MAX) NULL,
    [SecurityStamp] NVARCHAR (MAX) NULL,
    [Name]          NVARCHAR (MAX) NULL,
    [Surname]       NVARCHAR (MAX) NULL,
    [Company]       NVARCHAR (MAX) NULL,
    [Street]        NVARCHAR (MAX) NULL,
    [ZIPcode]       NVARCHAR (MAX) NULL,
    [City]          NVARCHAR (MAX) NULL,
    [Country]       NVARCHAR (MAX) NULL,
    [Phone]         NVARCHAR (MAX) NULL,
    [Email]         NVARCHAR (MAX) NULL,
    [Discriminator] NVARCHAR (128) NOT NULL,
    [IPAddress]     NVARCHAR (MAX) NULL,
    [RegisterDate]  DATETIME       NULL,
    [LicenseDate]   DATETIME       NULL,
    CONSTRAINT [PK_dbo.AspNetUsers] PRIMARY KEY CLUSTERED ([Id] ASC)
);

再次感谢您对此进行研究。

对于初学者来说,这段代码不会编译,因为函数块周围没有大括号。更具体地说,这在什么方面不起作用?有错误吗?意外行为?另外,
LicenseDate
应该是
DateTime
类型。如果答案正好是1年呢。。。?(在这种情况下,我相信天数是0)我相信OP想要的是日期差异,而不是日期比较。如果在当前日期/时间上添加一天,则可能可以使用“比较”。只是一个想法!我不知道你的意思。这应该满足他的要求,
数据库中的日期需要在将来
我的坏-你是对的!我在看OP提供的“代码”,而不是仔细阅读问题文本。