如何比较 SQL 存储过程中的日期?
How to compare dates in SQL stored procedure?
我想使用以下 SQL 语句在存储过程中查询数据库:
SELECT date1 FROM table INTO dates
WHERE date1 < CONVERT(VARCHAR(8), GETDATE(), 112)
AND date1 > CONVERT(VARCHAR(8), DATEADD(DAY, -4, GETDATE()), 112);
我在 WHERE 子句上出错,我做错了什么?
假设 date1 是 datetime 类型然后使用 Between
SELECT date1 INTO dates FROM table
WHERE date1 BETWEEN CONVERT(VARCHAR(8), DATEADD(DAY, -4, GETDATE()), 112) AND
CONVERT(VARCHAR(8), GETDATE(), 112);
如果 date1 不是 datetime,则将其转换为 Use Between
SELECT date1 INTO dates FROM table
WHERE CONVERT(VARCHAR(8), date1, 112) BETWEEN CONVERT(VARCHAR(8), DATEADD(DAY, -4, GETDATE()), 112) AND
CONVERT(VARCHAR(8), GETDATE(), 112);
语法错误是因为INTO
不对。
1) 但正如@Jonathan 所提到的,函数 GETDAT、CONVERT、DATEADD
不是本地的,也不存在于 INFORMIX 数据库中。除非你已经创建它...
2) "dates" 应该是您 SPL 的变量。
3) SELECT 应该 return 只有 1 行....
SELECT date1 INTO dates FROM table
WHERE date1 < CONVERT(VARCHAR(8), GETDATE(), 112)
AND date1 > CONVERT(VARCHAR(8), DATEADD(DAY, -4, GETDATE()), 112);
这应该是一个有效的 Informix 语法:
SELECT date1 INTO dates FROM table
WHERE date1 < today
AND date1 > today - 4 units day ;
有关语法的详细信息,请查看 IBM Knowledge Center
我想使用以下 SQL 语句在存储过程中查询数据库:
SELECT date1 FROM table INTO dates
WHERE date1 < CONVERT(VARCHAR(8), GETDATE(), 112)
AND date1 > CONVERT(VARCHAR(8), DATEADD(DAY, -4, GETDATE()), 112);
我在 WHERE 子句上出错,我做错了什么?
假设 date1 是 datetime 类型然后使用 Between
SELECT date1 INTO dates FROM table
WHERE date1 BETWEEN CONVERT(VARCHAR(8), DATEADD(DAY, -4, GETDATE()), 112) AND
CONVERT(VARCHAR(8), GETDATE(), 112);
如果 date1 不是 datetime,则将其转换为 Use Between
SELECT date1 INTO dates FROM table
WHERE CONVERT(VARCHAR(8), date1, 112) BETWEEN CONVERT(VARCHAR(8), DATEADD(DAY, -4, GETDATE()), 112) AND
CONVERT(VARCHAR(8), GETDATE(), 112);
语法错误是因为INTO
不对。
1) 但正如@Jonathan 所提到的,函数 GETDAT、CONVERT、DATEADD
不是本地的,也不存在于 INFORMIX 数据库中。除非你已经创建它...
2) "dates" 应该是您 SPL 的变量。
3) SELECT 应该 return 只有 1 行....
SELECT date1 INTO dates FROM table
WHERE date1 < CONVERT(VARCHAR(8), GETDATE(), 112)
AND date1 > CONVERT(VARCHAR(8), DATEADD(DAY, -4, GETDATE()), 112);
这应该是一个有效的 Informix 语法:
SELECT date1 INTO dates FROM table
WHERE date1 < today
AND date1 > today - 4 units day ;
有关语法的详细信息,请查看 IBM Knowledge Center