• Access时间日期比较查询的方法


    假定数据库表名为MyTableName,日期/时间字段名为MyDate(这里MyDate不能设置为字符串,否则比较查询结果不正确)。

    1.Access数据表日期字段同日期字符串直接比较

    以下是查询2022年12月12日以后的数据的SQL语句。

    select * from MyTableName where MyDate>#2022-12-12#

    注意:Access日期查询时,表示日期的字符串前后要加#

    2.Access数据表日期字段同日期类型变量直接比较

    这种方法其实等同于方法一,以下是查询比当前日期(如2022-12-12)早10天的数据的SQL语句。

    DateTime queryDate=DateTime.Now.AddDays(-10);

    string sql = “select * from MyTableName where MyDate>#”+queryDate+“#”;

    3. 使用DateDiff函数对Access日期字段比较查询

    DateDiff,语法如下:

    DateDiff( 间隔字符, 日期1, 日期2 [,firstdayofweek[, firstweekofyear]])

    通常只需要使用以下方式

    DateDiff( 间隔字符, 日期1, 日期2)

    这个函数比较的结果是“日期2-日期1”,如果日期1晚于日期2,就会返回负数,其中间隔字符有以下几种表示方式:

    “yyyy” 比较年份

    “d”    比较日期

    “m”    比较月份

    示例如下:

    select DateDiff( “d”, #2022-12-12#, #2022-12-2#)

    SQL查询结果是:-10,表示前面的日期比后面的日期晚10天

    select DateDiff( “m”, #2022-10-12#, #2022-12-2#)

    SQL查询结果是:2,表示前面的日期比后面的日期早两个月

    select DateDiff( “yyyy”, #2012-10-12#, #2010-12-2#)

    SQL查询结果是:-2,表示前面的日期比后面的日期晚两年

    以下是Access使用DateDiff函数查询2022年12月12日以后的数据的SQL语句。

    select * from MyTableName where DateDiff( “d”, MyDate, #2022-12-12#)<0

    4.使用DateDiff函数查询Access日期字段等于某个日期的SQL语句

    假定数据库中某条记录的MyDate=2022-12-12 12:12:12

    以下语句的查询结果为0条记录,因为数据库中还包含时间信息,而查询条件中无时间信息。

    select * from MyTableName where MyDate=#2022-12-12#

    如果想得到正确的查询结果(1条记录),则需要使用以下SQL语句查询(查询日期为2022年12月12日的数据记录)。

    select * from MyTableName where DateDiff( “d”, MyDate, #2012-12-12#) <=0 AND DateDiff( “d”, MyDate, #2012-12-12#)>=0

  • 相关阅读:
    c语言进阶部分详解(详细解析字符串常用函数,并进行模拟实现(下))
    Linux常用命令——builtin命令
    python3GUI--仿做一个网易云音乐(第三弹v2.0)By:PyQt5(附下载地址)
    空气质量监测系统的组成和应用
    MySQL的指令大全和注意事项(强烈推荐收藏)
    Docker Golang 开发环境搭建指南
    基于Java+JSP+MySQL基于SSH的扶贫信息管理系统-计算机毕业设计
    esp32和ros2基础篇草稿-micro-ros-
    计算机网络——网络协议
    <十三>objectARX开发:模拟实现CAD的移动Move命令
  • 原文地址:https://blog.csdn.net/flysh05/article/details/126450715