我需要有关sql查询的帮助。我根本不知道SQL,但我试图在我的数据库中使用一行SQL来运行保险报告。
我希望看到每个供应商的保险在今天到现在两周之间到期。将查询放入日期字段后,我可以将报告设置为每两周自动运行一次并向我发送一份副本。
因此,每两周我就可以看到供应商的保险到期了。
这是SQL:
sql=(SELECT vndrinsrnce_dte_end FROM vndrinsrnce WHERE
vndrinsrnce_dte_end > SYSDATE AND vndrinsrnce_dte_end < SYSDATE +14)
它给了我一个错误。有人可以帮忙吗?
附件是我想要输入的字段的图片。
答案 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)