SQL将INT与GETDATE进行比较

时间:2013-04-10 20:58:48

标签: sql sql-server sql-server-2008 date

我无法搞清楚这一点,并在这里尝试了一切。我知道这很简单......

我们的日期在表格中存储为int。 EX 20130409.如何让SQL返回小于今天日期的日期?

我一直在使用强制转换和转换的不同组合,但不断出现溢出错误或转换失败。

以下是最近的一些代码:

SELECT
DBO.SPSYS07.LOC_CODE,
CONVERT(DATETIME,CAST(DBO.SPSYS07.REQ_D_DATE AS CHAR(8)),101) AS [CONVERTED_REQ_DATE],
DBO.SPSYS07.REQ_D_DATE
FROM  DBO.SPSYS07
WHERE SPSYS07.SHIP_DATE <= convert(int,convert(varchar(8),getdate(),112))

2 个答案:

答案 0 :(得分:0)

尝试声明今天的日期并使用

Declare todaysDate date
Set todaysDate = getdate()

然后将todaysDate转换为字符串,然后在年,月和日之间删除' - ',然后....

Select..... Where shipdate <= todaysDate

答案 1 :(得分:0)

您只需要为您的int值更改'20130101'。

DECLARE @date date
SELECT  @date = CONVERT(date, CAST('20130101' AS CHAR(12)), 112)
SELECT * FROM yourTable where @date < getdate()

问候