【问题标题】:MS Access statement for selecting data within selected date用于在选定日期内选择数据的 MS Access 语句
【发布时间】:2010-09-01 03:32:21
【问题描述】:

我需要一个语句来从 MS Access 数据库表中选择数据。

在选定的日期内

我的 GUI 中有两个文本框,分别称为 StartDate 和 EndDate

我想选择这 2 个日期内的数据。

我尝试了两种方法。

第一个是

" DAY(V.RegDate) between " + Start.ToString("dd") 
    + " and " + End.ToString("dd");
" and MONTH(V.RegDate) between " + Start.ToString("MM") + " and " 
    + End.ToString("MM");
" and YEAR(V.RegDate) between " + Start.ToString("yyyy") + " and " 
    + End.ToString("yyyy");

V.RegDate 是数据库中的日期列。

但是当我选择 01/08/2010 和 01/09/2010 时,它没有返回任何数据,而在 25/08/2010 有一些数据。

我认为那是因为我分别选择了日期,而且两个日期相同, 什么都不给我

我已经尝试了另一种方法...

" V.RegDate between #" + Start.ToString("dd/MM/yyyy") + "# and #" _
    + End.ToString("dd/MM/yyyy") + "#";

这也不会给我任何回报

有什么想法吗????

【问题讨论】:

    标签: c# ms-access


    【解决方案1】:

    这种模式适合我:

    SELECT sometable.somedate
    FROM sometable
    WHERE (((sometable.somedate) Between #2/1/2010# And #4/1/2010#));
    

    (在这种情况下它是 MDY,我通常更喜欢 ISO 风格 - YYYY/MM/DD,因为 Access 无法搞砸)

    也许您使用美国默认设置日期 - MDY 而不是英国(?)标准 DMY。

    【讨论】:

    • 如果您在 01/01/2010 到 31/01/2010.. 之间选择该方法是可以的,但如果您在 01/01/2010 到 01/02/2010.. 之间选择则不行以 dd/MM/yyyy 格式
    • 或者如果你选择 01/08/2010 到 09/09/2010 如果结束日期是 08/09/2010 则不起作用
    • 对不起我的错..应该是 MM-dd-yyyy
    • 虽然 Access 对 mm-dd-yyyy 很满意,但我想您会发现 yyyy-mm-dd 可以在任何地方使用,并且在我们生活的小世界中不那么模棱两可。跨度>
    • Jet/ACE SQL 要求日期采用美国格式 (m/d/y) 或采用@Remou 建议的 ISO 格式的明确格式(长日期是另一种格式,即 Format(Date() , "长日期")).
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多