查询显示从今天到两周后的所有过期记录

时间:2015-12-17 14:46:53

标签: php sql

我需要有关sql查询的帮助。我根本不知道SQL,但我试图在我的数据库中使用一行SQL来运行保险报告。

我希望看到每个供应商的保险在今天到现在两周之间到期。将查询放入日期字段后,我可以将报告设置为每两周自动运行一次并向我发送一份副本。

因此,每两周我就可以看到供应商的保险到期了。

这是SQL:

sql=(SELECT vndrinsrnce_dte_end FROM vndrinsrnce WHERE 
     vndrinsrnce_dte_end > SYSDATE AND vndrinsrnce_dte_end < SYSDATE +14)

它给了我一个错误。有人可以帮忙吗?

附件是我想要输入的字段的图片。

enter image description here

3 个答案:

答案 0 :(得分:0)

sysdate是Oracle,尝试使用GETDATE()代替SQL Server

答案 1 :(得分:0)

这可能是最好的方法,考虑到GETDATE()返回您可能想要忽略的时间。它增加了13天,所以在你再次运行它的第14天就没有重叠了。

SELECT vndrinsrnce_dte_end
FROM vndrinsrnce
WHERE vndrinsrnce_dte_end between CAST(GETDATE() AS DATE) AND CAST(DATEADD(DAY, 13, GETDATE()) AS DATE)

答案 2 :(得分:0)

@ LordOfSQL答案中的WHERE子句是正确的,但问题是:

  

我希望看到每个供应商的保险在今天到现在两周之间到期。

您的SQL语句仅检索策略到期日期,而不是有关供应商的任何实际可用信息。因此,您需要更新SELECT语句以包含识别供应商所需的所有列,例如:

SELECT [vendor_name], [vendor_phone] -- Just replace the names in [] with the actual column names
FROM vndrinsrnce
WHERE vndrinsrnce_dte_end between CAST(GETDATE() AS DATE) AND CAST(DATEADD(DAY, 13, GETDATE()) AS DATE)