Visual Foxpro - 特定日期减去两列数字日期并比较结果

时间:2015-11-07 17:45:44

标签: sql date numeric visual-foxpro subtraction

我是视觉foxpro的新手。我正在尝试编写sql语句。

有两列日期,数据类型为数字。

列日期采用YYYYMMDD格式。 B列日期采用YYYYMM格式。 DD不可用,因此我只比较YYYYMM。

我需要减去或找到特定日期之间的差异,例如2015年8月31日和A栏和B栏的日期。一旦我有差异,我需要比较并查看B栏的差异是否大于A栏。

我所想的是使用substr并将日期分成YYYY和MM。然后我从特定日期中减去它,然后比较YYYY部分以查看它的B列是否大于A列。

1 个答案:

答案 0 :(得分:1)

您的说明听起来好像columnA / 100会提供类似的格式。

所以,如果你有像这样的测试数据

CREATE CURSOR test (columnA Num(8), columnB Num(6))
INSERT INTO test VALUES (20150802, 201508)
INSERT INTO test VALUES (20150712, 201506)

...你可以得到colmumnB等于转换的所有行(columnA):

SELECT * FROM test WHERE INT(columnA / 100) = columnB

...或者获取所有行的A和B之间的差异:

SELECT INT(columnA/100) - columnB FROM test

或者如果你有一个日期类型参数,你可以获得columnB与参数匹配的所有行:

d = DATE(2015,8,31)
SELECT * FROM test WHERE columnB = YEAR(d) * 100 + MONTH(d)

如果您想要做一些不同的事情,我建议您编辑问题并添加更多详细信息