当前位置: 首页 > 面试题库 >

如何查询where和between子句中的DBF(dbase)文件日期类型字段

呼延辰龙
2023-03-14
问题内容

我有一个DBF文件,正在尝试从C#代码读取它。我可以在不对varchar类型字段应用任何条件或条件的情况下成功读取文件。我的问题是我必须从Date字段(type:date)中过滤记录。我尝试过以下方法,

SELECT * FROM D:\DBFreader\file.dbf where [RDATE] between 2/16/2006 12:00:00 AM and 2/20/2006 12:00:00 AM

上面给出了语法错误:缺少运算符

SELECT * FROM D:\DBFreader\file.dbf where [RDATE] between '2/16/2006 12:00:00 AM' and '2/20/2006 12:00:00 AM'

上面给出了数据类型不匹配错误

SELECT * FROM D:\DBFreader\file.dbf where [RDATE] between 2/16/2006 and 2/20/2006

上面的方法不会引发任何异常,但是尽管有匹配的记录,但不会返回任何记录。

where子句也发生相同的情况。我该怎么做才能过滤范围内的记录

我正在使用以下代码阅读

OdbcCommand cmd = new OdbcCommand();
OdbcDataAdapter da = new OdbcDataAdapter();
DataTable dt = new DataTable();

using (OdbcConnection connection = new OdbcConnection(connstring))
{
   connection.Open();
   cmd = new OdbcCommand(@"SELECT * FROM D:\DBFreader\file.dbf where [RDATE] between 2/16/2006 12:00:00 AM and 2/20/2006 12:00:00 AM", connection);
   cmd.CommandType = CommandType.Text;

   da.SelectCommand = cmd;
   da.Fill(dt);
}

问题答案:

好的 -

我相信问题是dBase / xBase不支持SQL日期之间的“之间”

解决方法:

@"SELECT * FROM D:\DBFreader\file.dbf where [RDATE] >= #2/16/2006 12:00:00 AM# and [RDATE] < #2/20/2006 12:00:00 AM#"

PS:我知道dBase语法支持“日期”字面量(例如“ 2/16/2006”;我不知道“日期时间”),请尝试一下。



 类似资料:
  • 问题内容: (1)表 (2)中的VBA 值 我想在子句中的语句中使用日期的内部运行查询。 当我在之外运行此查询时,它运行完美: 一次,我在中运行它不会给我一个错误,但也不会给我任何结果。 我认为问题是由和中的组合引起的。 我必须如何更改才能使其正常工作? 问题答案: 您在日期和时间之间缺少空格… 打开VBE并调试打印公式以查看结果(制造商确保您具有立即窗口[视图菜单/立即窗口])。 结果 2020

  • 问题内容: 我的条款之一是: 和是可能是的输入参数。 如果它们都为null,则基本上需要忽略和返回所有记录。 如果是,但是是,那么我需要返回DateCreated不大于(包括)的所有记录。 如果是,但是是,那么我需要返回所有记录,其中DateCreated不得早于(包括)直到今天的日期。 DateCreated不是null或有时是null字段。 到目前为止,我的子句无法完全按照我的要求运行。 问题

  • 问题内容: 我最近才刚开始使用SQLAlchemy,但仍无法解决某些概念。 归结为基本元素,我有两个这样的表(通过Flask-SQLAlchemy): 我将如何查询用户列表及其最新帖子(不包括无帖子的用户)。如果我使用的是SQL,则可以执行以下操作: 因此,我确切地知道“期望的” SQL可以达到我想要的效果,但是不知道如何在SQLAlchemy中“正确地”表达它。 编辑:如果很重要,我使用的是SQ

  • 问题内容: 谁能给我一些关于如何将这种子查询放入提示?(我正在使用 JPA 2.0 - Hibernate 4.x ) -第二个选择将始终获得单个结果或null。 问题答案: 尝试类似以下示例的操作来创建子查询: 请注意,由于附近缺少IDE,因此该代码尚未经过测试。

  • 问题内容: 将SELECT查询放在UPDATE查询的WHERE子句中时出现错误。 我的查询是这样的: AND错误将显示如下: “无法在FROM子句中指定目标表’m’进行更新” 问题答案: 实际上,您可以通过将其包装在子查询中来更新它(从而为结果创建临时表) 或使用 JOIN

  • 问题内容: 我想获取介于两个时间戳之间的记录。我想要使​​用hibernate模式。我尝试使用以下查询进行操作,但未获得任何输出 这是从控制台形成的SQL查询: 我的数据库具有T_ADM_TNM_UPDATE_DATETIME = 10/2/2012 5:10:40 PM的记录 但是结果集无法获取此查询…我不知道我哪里出错了。 谁能指导我进一步 问题答案: 您应该使用HQL参数而不是串联。 举个例