我无法搞清楚这一点,并在这里尝试了一切。我知道这很简单......
我们的日期在表格中存储为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))
答案 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()
问候