简体   繁体   English

使用C#中的SQL根据日期选择数据以从VFP数据库检索数据

[英]Select data based on date using SQL in C# to retrieve data from VFP db

We are using Abra Suite Software that is using a VFP db. 我们正在使用使用VFP数据库的Abra Suite软件。 I have a small program in C# that I would like to use to retrieve data from the db and generate a csv file from it. 我有一个用C#编写的小程序,我想用它从数据库中检索数据并从中生成一个csv文件。 At this point my problem is to get the data based on the range of date that I specified in the SQL statement. 此时,我的问题是根据我在SQL语句中指定的日期范围获取数据。 Below is my SQL statement and for whatever reason I see that there are records from 2008 (ie 06/09/2008). 以下是我的SQL语句,无论出于何种原因,我都看到有2008年的记录(即2008年9月9日)。 What am I doing wrong here? 我在这里做错了什么? Because when I read how SQL works I should have been able to do "WHERE chkdate BETWEEN '2007-06-01' '2007-06-06'" but I always get 'Operator/operand type mismatch', that's why I am using CAST in my current SQL statement. 因为当我阅读SQL的工作方式时,我应该能够执行“在'2007-06-01''2007-06-06'之间的chkdate的操作”,但是我总是会收到“运算符/操作数类型不匹配”的信息,这就是为什么我使用我当前的SQL语句中的CAST。

string SelectCmd = "SELECT TOP 100 p_empno, p_fname, p_lname, chknumber, chkamount, CAST(chkdate AS varchar(10)) " +
        "FROM hrpersnl " +
        "INNER JOIN prckhist ON hrpersnl.p_empno = prckhist.empno " +
        "WHERE CAST(chkdate AS varchar(10)) BETWEEN '06/06/2007' AND '06/09/2007' " +
        "ORDER BY p_empno";

在两个日期之间的两个括号之间用大括号代替撇号,例如{06/06/2007}和{06/09/2007}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM