如何以这种格式“31-jun-2013”​​获取日期

时间:2013-08-14 10:02:59

标签: c# date format

我怎样才能以“30-jun-2013”​​格式获取日期

在运行时如果用户在文本框中输入上述格式,则会获取指定日期的匹配数据行并对其进行过滤并在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;
}

如何解决

6 个答案:

答案 0 :(得分: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;

感谢所有回复人员

答案 1 :(得分:0)

首先你要进行字符串比较,这意味着你要比较引用。请使用

if (TypeHereTextBox.Text.Equals(datetoday))

代替。

第二,为什么不比较dateTime而不是字符串呢? 因为您的数据无论如何都不是有效日期,因此您无法使用ParseExactTryParseExact,但您可以使用任何有效日期:

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

if (d== DTM)

答案 2 :(得分: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天;)

答案 3 :(得分:0)

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

答案 4 :(得分:0)

您需要解析日期,已经提出了类似的问题。

请参阅链接 - Check if a string contains date or not

答案 5 :(得分:0)

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

我还会使用参数将Date列值设置为

OLCMND2 = new OracleCommand("Select * from TABLENAME where DATE = :dateVal", CON);
OLCMND2.Parameters.Add("dateVal", OracleDbType.Date
     , myDatetime, System.Data.ParameterDirection.Input);