如何比较SQL存储过程中的日期?
我想使用以下SQL语句在存储过程中查询数据库:如何比较SQL存储过程中的日期?,sql,stored-procedures,informix,Sql,Stored Procedures,Informix,我想使用以下SQL语句在存储过程中查询数据库: SELECT date1 FROM table INTO dates WHERE date1 < CONVERT(VARCHAR(8), GETDATE(), 112) AND date1 > CONVERT(VARCHAR(8), DATEADD(DAY, -4, GETDATE()), 112); 将表中的日期1选择为日期 其中date1CONVERT(VARCHAR(8),DATEADD(DAY,-4,GETDATE()),11
SELECT date1 FROM table INTO dates
WHERE date1 < CONVERT(VARCHAR(8), GETDATE(), 112)
AND date1 > CONVERT(VARCHAR(8), DATEADD(DAY, -4, GETDATE()), 112);
将表中的日期1选择为日期
其中date1CONVERT(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);
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);
如果date1不是datetime,则将其转换为,然后在之间使用
SELECT date1 INTO dates FROM table
WHERE date1 BETWEEN CONVERT(VARCHAR(8), DATEADD(DAY, -4, GETDATE()), 112) AND
CONVERT(VARCHAR(8), GETDATE(), 112);
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);
语法错误是因为中的
错误
1) 但正如@Jonathan所提到的,函数GETDAT、CONVERT、DATEADD
不是本机的,并且不存在于INFORMIX数据库中。除非您已经创建了它…
2) “日期”应该是SPL中的一个变量
3) SELECT应仅返回1行
SELECT date1 INTO dates FROM table
WHERE date1 < CONVERT(VARCHAR(8), GETDATE(), 112)
AND date1 > CONVERT(VARCHAR(8), DATEADD(DAY, -4, GETDATE()), 112);
从表中选择日期1
其中date1CONVERT(VARCHAR(8),DATEADD(DAY,-4,GETDATE()),112);
这应该是有效的Informix语法:
SELECT date1 INTO dates FROM table
WHERE date1 < today
AND date1 > today - 4 units day ;
从表中选择日期1
今天在哪里
和日期1>今天-每天4个单位;
有关语法的更多信息,请查看date1包含的值是什么?date1列的格式是什么?我假设不是datetime?where子句出现了什么错误?我在语法上遇到了一个错误。date1是SQL中的DATE类型。奇怪的是,我能够使用DATEADD、GETDATE和CONVERT创建存储过程。不过,在我将查询用于某些数据之前,我还不知道该查询是否真的能工作。我将此语法视为MS SQL SERVER,可能无法工作。如果date1是date或datetime数据类型,则可以将convert+getdate替换为TODAY
关键字。在第二个convert()表达式中,您可以用这个today-4 units day
替换它。您可以发布这段代码的样子,不知道today-4 units day
的意思是什么关于select仅返回一行,如何创建仅返回一行的sql语句,从表中选择date1-INTO-dates,其中date1CONVERT(VARCHAR(8),DATEADD(DAY,-4,GETDATE()),112)如果需要条件的话,代码>会不会?我能够每天利用单位来解决我遇到的问题,SQL与Informix有一些关键的区别。