如何将sql数据库中的日期与当前日期进行比较,以允许在C#mvc5中访问页面
这对你们来说可能是一个非常基本的问题,但我对这个世界很陌生,每天都努力学习。我在标准dbo.AspNetUsers表中添加了一些列。其中一个是我想与当前日期时间进行比较的日期。数据库中的日期必须在将来,否则不允许它查看页面 我在控制器中尝试了一些方法:如何将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
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提供的“代码”,而不是仔细阅读问题文本。