比较日期时间

时间:2015-12-05 07:36:12

标签: c# datetime

我有一个jquery datepicker,它选择一个像checkIn = 07/12/2015这样的日期,它将作为查询字符串传递给下一页。

在我的数据库中,我有一个startDate和endDate列,以此格式存储日期时间12/6/2015 12:00:00 AM

那么我如何将selectDate与数据库中的startDate进行比较。 我试试这个

  Datetime checkIn = DateTime.ParseExact(Request.QueryString["checkIn"], "MM-dd-yyyy h:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture); 

但不行。

3 个答案:

答案 0 :(得分:0)

在日期格式中尝试hh而不是h

答案 1 :(得分:0)

如果您将数据库中的日期存储为蜇 - 您需要使用不同的格式解析它们(在您的情况下为“MM / d / yyyy hh:mm:ss tt”):

var dbDateAsString = "12/30/2015 12:00:00 AM"; //30 Dec 2015
var checkIn = DateTime.ParseExact(Request.QueryString["checkIn"], "MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture); //07/12/2015 == 7 Dec 2015
var dbDate = DateTime.ParseExact(dbDateAsString, "MM/d/yyyy hh:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture); 
var result = checkIn > dbDate;

答案 2 :(得分:0)

最有可能的是,您的数据库将日期存储为 date 值,而不是字符串。您描述的格式仅供显示。如果是这样的话:

string checkIn= "07/12/2015";
DateTime selectedDate = DateTime.ParseExact(checkIn, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);

int compareStart = startDate.CompareTo(selectedDate);
int compareEnd = endDate.CompareTo(selectedDate);

bool accept = compareStart + compareEnd == 0;    
// or, to include start and end dates as acceptable:    
bool accept = Math.Abs(compareStart + compareEnd) <= 1;