不确定之前是否已经问过这个问题。
我正在尝试按当前日期过滤掉2列(datPromisedDelivery,datCommisioned)。
应显示数据,其中包含昨天和明天的日期(-1,+ 1)
我写的这是一个很长的查询。
SELECT
nJobNumber,
strClientName,
strClientReference,
strJobCategory,
datCommisioned,
datPromisedDelivery
FROM vwJobBookForXML
where bCompleted=0 and
nJobNumber is not null and
strClientReference is not null and
datPromisedDelivery BETWEEN DATEADD(DAY, -1, GETDATE()) and DATEADD(DAY, +1, GETDATE()) and
datCommisioned BETWEEN DATEADD(DAY, -1, GETDATE()) and DATEADD(DAY, +1, GETDATE())
ORDER BY nJobNumber;
由于程序输出一个空的CSV文件,该查询可能包含一些语法错误。
有人可以猜出查询有什么问题吗?
答案 0 :(得分:0)
DATEADD是一个SQL服务器功能。
如果它是MYSQL:
,请使用DATE_ADDfieldName BETWEEN DATE_ADD(CURDATE(), INTERVAL -1 DAY) AND DATE_ADD(CURDATE(), INTERVAL 1 DAY);
如果SQL错误的唯一指示符是空文件,则应检查错误处理/日志记录。