使用SQL查找特定日期

使用SQL查找特定日期,sql,datetime,ms-access,Sql,Datetime,Ms Access,我试图在数据库中搜索特定日期的记录。我已尝试通过以下方式进行搜索: SELECT * FROM TABLE_1 WHERE CAL_DATE=01/01/2015 及 我正在使用Access数据库,表中的日期显示格式与2015年1月1日相同。SQL语句中是否缺少某些内容 尝试在过滤器上使用CDATE函数: WHERE CAL_DATE = CDATE('01/01/2015') 这将确保您的输入是日期数据类型,而不是字符串。从表1中选择*,其中CDATEColumnDate介于2015年3

我试图在数据库中搜索特定日期的记录。我已尝试通过以下方式进行搜索:

SELECT * 
FROM TABLE_1
WHERE CAL_DATE=01/01/2015


我正在使用Access数据库,表中的日期显示格式与2015年1月1日相同。SQL语句中是否缺少某些内容

尝试在过滤器上使用CDATE函数:

WHERE CAL_DATE = CDATE('01/01/2015')

这将确保您的输入是日期数据类型,而不是字符串。

从表1中选择*,其中CDATEColumnDate介于2015年3月26日和2015年3月19日之间


如果这行得通。。投赞成票。。我们使用上述查询搜索3月26日至3月19日的记录。。相应地更改日期。

从表1中选择*,其中CDATEColumnDate介于2015年3月26日和2015年3月19日之间


如果这行得通。。投赞成票。。我们使用上述查询搜索3月26日至3月19日的记录。。相应地更改日期。

以下任何选项都可以使用:

直接在查询中设置日期格式

SELECT * 
FROM TABLE_1
WHERE CAL_DATE=#01/01/2015#;
DateValue函数将字符串转换为日期

SELECT * 
FROM TABLE_1
WHERE CAL_DATE=DateValue('01/01/2015');
SELECT * 
FROM TABLE_1
WHERE CAL_DATE=CDate('01/01/2015');
CDate函数将值转换为日期

SELECT * 
FROM TABLE_1
WHERE CAL_DATE=DateValue('01/01/2015');
SELECT * 
FROM TABLE_1
WHERE CAL_DATE=CDate('01/01/2015');
DateSerial函数将返回给定年、月和日的日期

SELECT * 
FROM TABLE_1
WHERE CAL_DATE=DateSerial(2015, 1, 1);

有关上述功能的更多信息,请参见下页:

CAL_DATE列的数据类型是什么?对于30岁以下的人,Access要求您的日期用磅符号或哈希标记包围。因此,您希望CAL_DATE=01/01/2015没有理由对此投票。在数据类型为datetime的字段上应用CDate是没有意义的。事实上,如果字段的值为Null,它甚至会失败。谢谢!我最终使用了这个函数。