'rukuriqi'为access数据库中用now()获取的日期,数据库中有数据,为什么就是查不到,郁闷!                string dt1 = dateTimePicker1.Value.ToString("yyyy-MM-dd");
                string sel = "select * from [chukurizi] where [cukuriqi] = #"+dt1+"#";
                string ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=date.mdb;Jet OLEDB:Database Password=;Persist Security Info=False";
                OleDbConnection ODConn = new OleDbConnection(ConnStr);
                ODConn.Open();
                OleDbCommand ODComm1 = ODConn.CreateCommand();
                ODComm1.CommandText = sel;
                DataTable MyTable = new DataTable();
                OleDbDataAdapter MyAdapter = new OleDbDataAdapter(ODComm1);
                MyAdapter.Fill(MyTable);
                dataGridView1.DataSource = MyTable;

解决方案 »

  1.   

    问题里是rukuriqi(入库日期吧),程序里是cukuriqi,是不是这里写错了?
      

  2.   

    select * [chukurizi] where [cukuriqi] >= #2011-01-15#
    在ACCESS中执行查询看看
      

  3.   

    select * [chukurizi] where [cukuriqi] >= #2011-01-15#>=时可以查到,=时查不到
      

  4.   

    cukuriqi在自动生成时多了时间部分,你去数据库里看看cukuriqi的值就知道了
      

  5.   

    db的时间格式和dt1 的格式没有统一。
      

  6.   

    access数据库里面的格式是yyyy-MM-dd hh-mm-ss ,但是我把dateTimePicker1.Value.ToString("yyyy-MM-dd")的格式改成yyyy-MM-dd hh-mm-ss后又说语法不对!
      

  7.   

    另外再问一下如何将两个dateTimePicker的时间一个设为一天的开始,一个设为一天的最后一秒
      

  8.   

    select * [chukurizi] where DateDiff(d,[cukuriqi],#2011-01-15#) =  0
      

  9.   

    设置当前日期或时间。 Date ,Now, Time  
    计算日期: DateAdd, DateDiff, DatePart  
    返回日期: DateSerial, DateValue  
    返回时间: TimeSerial, TimeValue  
    设置日期或时间: Date, Time  
    计时: Timer  
    在帮助里有~ 
    --------------------------- 
    够全了! 
    --------------------------- Time 函数 
           
    返回一个指明当前系统时间的 Variant (Date)。 
    语法  
    Time 
    说明 
    为了设置系统时间,请使用 Time 语句。Time 函数示例 
    本示例使用 Time 函数返回系统当前的时间。 
    Dim MyTime 
    MyTime = Time    ’ 返回系统当前的时间。 DateAdd 函数 
           
    返回包含一个日期的 Variant (Date),这一日期还加上了一段时间间隔。 
    语法  
    DateAdd(interval, number, date) 
    DateAdd 函数语法中有下列命名参数: 
    部分 描述  
    interval 必要。字符串表达式,是所要加上去的时间间隔。  
    number 必要。数值表达式,是要加上的时间间隔的数目。其数值可以为正数(得到未来的日期),也可以为负数(得到过去的日期)。  
    date 必要。Variant (Date) 或表示日期的文字,这一日期还加上了时间间隔。  
    设置 
    interval 参数具有以下设定值: 
    设置 描述  
    ==yyyy 年  
    ==q 季  
    ==m 月  
    ==y 一年的日数  
    ==d 日  
    ==w 一周的日数  
    ==ww 周  
    ==h 时  
    ==n 分钟  
    ==s 秒  
    说明 
    可以使用 DateAdd 函数对日期加上或减去指定的时间间隔。例如,可以用 DateAdd 来计算距今天为三十天的日期;或者计算距现在为 45 分钟的时间。 
    为了对 date 加上“日”,可以使用“一年的日数” (“y”),“日” (”d”) 或“一周的日数” (”w”)。 
    DateAdd 函数将不返回有效日期。在以下实例中将 1 月31 日加上一个月: 
    DateAdd(m, 1, 31-Jan-95) 
    上例中,DateAdd 返回 1995 年 2 月 28 日,而不是 1995 年 2 月 31 日。如果 date 是 1996 年 1 月 31 日,则由于 1996 年是闰年,返回值是 1996 年 2 月 29 日。 
    如果计算的日期超前 100 年(减去的年度超过 date 中的年份),就会导致错误发生。 
    如果 number 不是一个 Long 值,则在计算时取最接近的整数值来计算。 
    注意   DateAdd 返回值的格式由 Control Panel设置决定,而不是由传递到date 参数的格式决定。 
    DateAdd 函数示例 
    本示例先取得一个日期,再用 DateAdd 函数显示未来数月后的日期。  
    Dim FirstDate As Date    ’ 声明变量。 
    Dim IntervalType As String 
    Dim Number As Integer 
    Dim Msg 
    IntervalType = "m"    ’ "m"指定以“月份”作为间隔。 
    FirstDate = InputBox("Enter a date") 
    Number = InputBox("Enter number of months to add") 
    Msg = "New date: " & DateAdd(IntervalType, Number, FirstDate) 
    MsgBox Msg -------------------------------------------------------------------------------- DateDiff 函数 
           
    返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目。 
    语法 
    DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]]) 
    DateDiff 函数语法中有下列命名参数: 
    部分 描述  
    interval 必要。字符串表达式,表示用来计算date1 和 date2 的时间差的时间间隔  
    Date1□date2 必要;Variant (Date)。计算中要用到的两个日期。  
    Firstdayofweek 可?gt;>V付ㄒ桓鲂瞧诘牡谝惶斓某J H绻 从柚付ǎ 蛞孕瞧谌瘴 谝惶臁?nbsp; 
    firstweekofyear 可?gt;>V付ㄒ荒甑牡谝恢艿某J H绻 从柚付ǎ 蛞园 ?nbsp;1 月 1 日的星期为第一周。  
    设置 
    interval 参数的设定值如下: 
    设置 描述  
    yyyy 年  
    q 季  
    m 月  
    y 一年的日数  
    d 日  
    w 一周的日数  
    ww 周  
    h 时  
    n 分钟  
    s 秒  
    firstdayofweek 参数的设定值如下: 
    常数 值 描述  
    vbUseSystem 0 使用 NLS API 设置。  
    vbSunday 1 星期日(缺省值)  
    vbMonday 2 星期一  
    vbTuesday 3 星期二  
    vbWednesday 4 星期三  
    vbThursday 5 星期四  
    vbFriday 6 星期五  
    vbSaturday 7 星期六  
    常数 值 描述  
    vbUseSystem 0 用 NLS API 设置。  
    vbFirstJan1 1 从包含 1 月 1 日的星期开始(缺省值)。  
    vbFirstFourDays 2 从第一个其大半个星期在新的一年的一周开始。  
    vbFirstFullWeek 3 从第一个无跨年度的星期开始。  
    说明 
    DateDiff 函数可用来决定两个日期之间所指定的时间间隔数目。例如,可以使用 DateDiff 来计算两个日期之间相隔几日,或计算从今天起到年底还有多少个星期。 
    为了计算 date1 与 date2 相差的日数,可以使用“一年的日数”(y) 或“日”(d)。当 interval 是“一周的日数”(w) 时,DateDiff 返回两日期间的周数。如果 date1 是星期一,DateDiff 计算到 date2 为止的星期一的个数。这个数包含 date2 但不包含 date1。不过,如果 interval 是“周”(ww),则 DateDiff 函数返回两日期间的“日历周”数。由计算 date1 与 date2 之间星期日的个数而得。如果 date2 刚好是星期日,则 date2 也会被加进 DateDiff 的计数结果中;但不论 date1 是否为星期日,都不将它算进去。 
    如果 date1 比 date2 来得晚,则 DateDiff 函数的返回值为负数。 
    firstdayofweek 参数会影响使用时间间隔符号 “W” 或 “WW” 计算的结果。 
    如果 date1 或 date2 是日期文字,则指定的年份成为该日期的固定部分。但是,如果 date1 或 date2 用双引号 (" ") 括起来,且年份略而不提,则在每次计算表达式 date1 或 date2 时,当前年份都会插入到代码之中。这样就可以书写适用于不同年份的程序代码。 
    在计算 12 月 31 日和来年的 1 月 1 日的年份差时,DateDiff 返回 1 表示相差一个年份,虽然实际上只相差一天而已。 
    DateDiff 函数示例 
    本示例使用 DateDiff 函数来显示某个日期与今日相差几天。 
    Dim TheDate As Date    ’ 声明变量。 
    Dim Msg 
    TheDate = InputBox("Enter a date") 
    Msg = "Days from today: " & DateDiff("d", Now, TheDate) 
    MsgBox Msg -------------------------------------------------------------------------------- DatePart 函数 
           
    返回一个包含已知日期的指定时间部分的 Variant (Integer)。 
    语法 
    DatePart(interval, date[,firstdayofweek[, firstweekofyear]]) 
    DatePart 函数语法中有下列命名参数: 
    部分 描述  
    interval 必要。字符串表达式,是要返回的时间间隔。  
    date 必要。要计算的 Variant (Date) 值。  
    Firstdayofweek 可?gt;>V付ㄒ桓鲂瞧诘牡谝惶斓某J H绻 从柚付ǎ 蛞孕瞧谌瘴 谝惶臁?nbsp; 
    firstweekofyear 可?gt;>V付ㄒ荒甑谝恢艿某J H绻 从柚付ǎ 蛞园 ?nbsp;1 月 1 日的星期为第一周。  
    设置 
    interval 参数的设定值如下: 
    设置 描述  
    yyyy 年  
    q 季  
    m 月  
    y 一年的日数  
    d 日  
    w 一周的日数  
    ww 周  
    h 时  
    n 分钟  
    s 秒  
    firstdayofweek 参数的设定值如下: 
    常数 值 描述  
    vbUseSystem 0 使用 NLS API 设置。  
    vbSunday 1 星期日(缺省值)  
    vbMonday 2 星期一  
    vbTuesday 3 星期二  
    vbWednesday 4 星期三  
    vbThursday 5 星期四  
    vbFriday 6 星期五  
    vbSaturday 7 星期六  
    firstweekofyear 参数的设定值如下: 
    常数 值 描述  
    vbUseSystem 0 使用 NLS API 设置。  
    vbFirstJan1 1 从包含 1 月 1 日的星期开始(缺省值)。  
    vbFirstFourDays 2 从第一个其大半个星期在新的一年的一周开始。  
    vbFirstFullWeek 3 从第一个无跨年度的星期开始。  
    说明 
    DatePart 函数可以用来计算日期并返回指定的时间间隔。例如,可以使用DatePart 计算某个日期是星期几或目前为几点钟。 
    firstdayofweek 参数会影响使用时间间隔符号 “W” 或 “WW” 计算的结果。 
    如果 date 是日期文字,则指定的年份成为该日期的固定部分。但是,如果 date 用双引号 (" ") ㄆ鹄矗 夷攴萋远 惶幔 蛟诿看渭扑?nbsp;date 表达式时,当前年份都会插入到代码之中。这样就可以书写适用于不同年份的程序代码
      

  10.   

    select * [chukurizi] where DateDiff(d,[cukuriqi],#2011-01-15#) = 0这句不行
      

  11.   

    难道只能这样string sel = "select * from [chukurizi] where year(cukuriqi) = year(#" + dt1 + "#) and month(cukuriqi) = month(#" + dt1 + "#) and day(cukuriqi) = day(#" + dt1 + "#)";
      

  12.   

    两个问题终于完美解决
    加入如下代码            dateTimePicker1.Value = new DateTime(dateTimePicker1.Value.Year, dateTimePicker1.Value.Month, dateTimePicker1.Value.Day, 0, 0, 0);
                dateTimePicker2.Value = new DateTime(dateTimePicker2.Value.Year, dateTimePicker2.Value.Month, dateTimePicker2.Value.Day, 23, 59, 59);再把dateTimePicker改成如下格式就OK了,哎,为这两个问题纠结了一天!
                    string dt1 = dateTimePicker1.Value.ToString("yyyy/MM/dd HH:mm:ss");
                    string dt2 = dateTimePicker2.Value.ToString("yyyy/MM/dd HH:mm:ss");