0

我怎样才能以这种格式获取日期“2013 年 6 月 30 日”

在运行时,如果用户在文本框中输入上述格式..它将获取指定日期的匹配数据行并过滤并显示在 datagridview

所以为此我想将日期格式与文本框中输入的文本进行比较

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;
}

怎么解决

4

5 回答 5

1

嗨,我得到了解决方案

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;

感谢您的所有回复

于 2013-08-16T05:23:56.913 回答
0

首先你在做字符串比较,这意味着你比较引用。请用

if (TypeHereTextBox.Text.Equals(datetoday))

反而。

第二,为什么不比较 dateTime 而不是字符串?因为您的数据无论如何都不是有效日期,所以您不能使用ParseExact或者TryParseExact但是您可以执行任何有效日期:

DateTime d;
DateTime.TryParseExact(date, "dd-MMM-yyyy", System.Globalization.CultureInfo.InvariantCulture,
                                System.Globalization.DateTimeStyles.NoCurrentDateDefault, out d);

if (d== DTM)
于 2013-08-14T10:10:05.257 回答
0

这将从该格式解析:

var dateToParse = "30-Jun-2013"; //TypeHereTextBox.Text
var parsedDate = DateTime.ParseExact(dateToParse, "dd-MMM-yyyy", CultureInfo.InvariantCulture);

if (parsedDate.Date == datetoday.Date)
{
    // Do stuff

注意 - 六月只有 30 天 ;)

于 2013-08-14T10:11:14.127 回答
0

最好的方法是使用今天的日期分别检查日期月份和年份。如果匹配,则以您想要的格式连接日期月份和年份并传递给查询。

于 2013-08-14T10:11:27.537 回答
0

我不会将日期作为字符串进行比较,首先DateTime.ParseExact通过给出日期时间格式字符串将字符串转换为日期时间。然后比较两个日期时间对象而不是字符串比较。

而且我会使用参数来设置日期列值如下

OLCMND2 = new OracleCommand("Select * from TABLENAME where DATE = :dateVal", CON);
OLCMND2.Parameters.Add("dateVal", OracleDbType.Date
     , myDatetime, System.Data.ParameterDirection.Input);
于 2013-08-14T10:19:12.397 回答