我是第一次接触visual foxpro。我正在尝试编写sql语句。
有两列日期,数据类型为numeric。
列A日期采用YYYYMMDD格式。B列日期采用YYYYMM格式。DD不可用,因此我只比较YYYYMM。
我需要减去或找出特定日期之间的差异,例如2015年8月31日与A和B列中的日期之间的差异。一旦我有了差异,我需要比较B列中的差异是否大于A列中的差异。
我的想法是使用substr并将日期拆分为YYYY和MM.。然后我从特定日期中减去它,然后比较YYYY部分,看看B列是否大于A列。
发布于 2015-11-08 17:25:27
你的描述听起来好像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或者,如果您有一个date类型的参数,例如,您可以获取columnB与该参数匹配的所有行:
d = DATE(2015,8,31)
SELECT * FROM test WHERE columnB = YEAR(d) * 100 + MONTH(d)如果您想做一些不同的事情,我建议您编辑问题并添加更多细节
https://stackoverflow.com/questions/33585808
复制相似问题