C# 如何以这种格式获取日期;2013年6月31日“;
如何以这种格式获取日期“2013年6月30日” 在运行时,如果用户在文本框中键入上述格式,。它将获取指定日期的匹配数据行,并对其进行筛选,并在datagridview中显示 因此,我想将日期格式与文本框中键入的文本进行比较C# 如何以这种格式获取日期;2013年6月31日“;,c#,date,format,C#,Date,Format,如何以这种格式获取日期“2013年6月30日” 在运行时,如果用户在文本框中键入上述格式,。它将获取指定日期的匹配数据行,并对其进行筛选,并在datagridview中显示 因此,我想将日期格式与文本框中键入的文本进行比较 string todaydate = Convert.ToString(DateTime.Today); DateTime DTM = Convert.ToDateTime(todaydate); string datetoday = DTM.ToString("dd-M
string todaydate = Convert.ToString(DateTime.Today);
DateTime DTM = Convert.ToDateTime(todaydate);
string datetoday = DTM.ToString("dd-MMM-yyyy");
if (TypeHereTextBox.Text == datetoday)
{
OLCMND2 = new OracleCommand("Select * from TABLENAME where DATE = '" + typeHereTextBox.Text + "'", CON);
OADAP1 = new OracleDataAdapter(OLCMND2);
OADAP1.Fill(DTBLE2);
DatagridView.DataSource = DTBLE2;
}
如何解决这个问题呢?首先,您要进行字符串比较,这意味着您要比较引用。请使用
if (TypeHereTextBox.Text.Equals(datetoday))
相反
第二,为什么不比较dateTime和notstring呢?
由于您的数据不是有效日期,因此您不能使用ParseExact
或TryParseExact
,但可以使用任何有效日期:
DateTime d;
DateTime.TryParseExact(date, "dd-MMM-yyyy", System.Globalization.CultureInfo.InvariantCulture,
System.Globalization.DateTimeStyles.NoCurrentDateDefault, out d);
if (d== DTM)
这将从该格式解析:
var dateToParse = "30-Jun-2013"; //TypeHereTextBox.Text
var parsedDate = DateTime.ParseExact(dateToParse, "dd-MMM-yyyy", CultureInfo.InvariantCulture);
if (parsedDate.Date == datetoday.Date)
{
// Do stuff
注-6月只有30天;) 最好的方法是用今天的日期分别检查日期、月份和年份。如果匹配,则以您想要的格式连接日期月份和年份并传递到查询。我不会将日期作为字符串进行比较,首先使用
DateTime.ParseExact将字符串转换为DateTime,方法是提供DateTime格式字符串。然后比较两个datetime对象,而不是字符串比较
我还将使用参数设置日期列值,如下所示
OLCMND2 = new OracleCommand("Select * from TABLENAME where DATE = :dateVal", CON);
OLCMND2.Parameters.Add("dateVal", OracleDbType.Date
, myDatetime, System.Data.ParameterDirection.Input);
嗨,我找到解决办法了,伙计们
string[] arrayData = TextBox.Text.Split('-');
if (arrayData.Length == 3)
OLCMND2 = new OracleCommand("Select VISITORCOUNT,REMARKS,to_date(to_char(TODAYDATE, 'DD-MON-YYYY'),'DD-MON-YYYY') AS TODAYDATE,CARDNUMBER,PHOTO from VMS_VISITOR where TODAYDATE = TO_DATE('" + TypeHereTextBox.Text + "','dd-MON-yyyy')", CON);
OADAP1 = new OracleDataAdapter(OLCMND2);
OADAP1.Fill(DTBLE2);
DatagridView.DataSource = DTBLE2;
感谢您的回复,伙计们看看TryParse,将文本框内容转换为日期,并将其与今天的日期进行比较。请注意,dd MMM yyyy中的MMM与区域性有关。DATE
列的数据库类型是什么?@Damith它是使用Oracle 11g的日期类型