我是视觉foxpro的新手。我正在尝试编写sql语句。
有两列日期,数据类型为数字。
列日期采用YYYYMMDD格式。 B列日期采用YYYYMM格式。 DD不可用,因此我只比较YYYYMM。
我需要减去或找到特定日期之间的差异,例如2015年8月31日和A栏和B栏的日期。一旦我有差异,我需要比较并查看B栏的差异是否大于A栏。
我所想的是使用substr并将日期分成YYYY和MM。然后我从特定日期中减去它,然后比较YYYY部分以查看它的B列是否大于A列。
答案 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)
如果您想要做一些不同的事情,我建议您编辑问题并添加更多详细信息