比较 FoxPro 命令行中的日期变量

Comparing a date variable in FoxPro commandline

我想执行以下命令:

////接受 x ////显示所有 date_field=x

这些命令的目的是输入一个值 x,之后我将显示 table 的所有寄存器,其 date_field 变量等于 x date_field 有一个 (Date,8)

类型的变量

这些日期变量是这样存储的,例如:03/11/17、04/23/17 等等。从键盘,我输入例如 03/11/17。然后,我尝试比较,我得到了错误。有人可以告诉我执行此任务的正确命令集吗?

据我了解,您正在将输入的值分配给名为 'x' 的变量,然后使用 'x' 与日期字段进行比较。

问题可能是 'x' 是一个字符串,而您正试图将它与日期进行比较。所以需要用到ctod()函数。例如:

select * from mytable where date_field = ctod(x)

还要注意您的区域设置。

当您说您正在键盘上输入时,这是否意味着 foxpro 正在提示您?

您可以在 file.prg 中设置输入以接收这样的日期对象:

inputdate = {  /  /  }
@10,25 SAY "Enter Input Date: MM/DD/YYYY" GET inputdate
READ

使用日期文字表达式。在 FoxPro 中,格式为 {^yyyy/mm/dd}.

例如,要与 2018 年 2 月 11 日进行比较,请使用 {^2018/2/11}

Comparing a date variable in FoxPro commandline

accept to x

display all for date_field=x

"Command Line" 我假设您的意思是使用 Foxpro 命令 Window 并输入单行命令。如果不是,那么您需要澄清您正在尝试做什么。

在 FP 命令 window 中,您一次键入以下单行:

x = {^2018/2/11}  && Assign this value to 'x' if you want the date February 11 2018
SELECT * FROM MyDataTable WHERE Date_Field = x INTO CURSOR Results READWRITE  && use SQL Query to get results from Data Table MyDataTable
SELECT Results   && go to results table/cursor
BROWSE     && make it visible on-screen  

由于您的问题非常笼统和基础,您可能需要花一些时间观看免费的在线 VFP 教程视频,网址为:
Free Online VFP Tutorial Videos

是的,这些视频是关于 Visual Foxpro 而不是 OLD Foxpro,但有很多共同点。

祝你好运