Sql 返回昨天日期的结果
我有一个连接返回今天的结果,但我希望它返回昨天的值Sql 返回昨天日期的结果,sql,sql-server,date,Sql,Sql Server,Date,我有一个连接返回今天的结果,但我希望它返回昨天的值 FROM Person JOIN Profit ON Person.id = Profit.id AND [DATE] = CAST(getdate () -1 as Date) ^^这将返回当前日期 然后我尝试返回昨天的日期: [DATE] = DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), -1) [DATE] = DATEADD(day,DATEDIFF(day,0,GETDATE())-
FROM
Person
JOIN Profit
ON Person.id = Profit.id
AND [DATE] = CAST(getdate () -1 as Date)
^^这将返回当前日期
然后我尝试返回昨天的日期:
[DATE] = DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), -1)
[DATE] = DATEADD(day,DATEDIFF(day,0,GETDATE())-1,0)
[DATE] = dateadd(DD, -1, cast(getdate() as date))
但这些都不管用。有人能帮忙吗?如果您执行以下操作,请感谢
select DATEADD(day, -1, cast(SYSDATETIME() as DATE))
select dateadd(DD, -1, cast(getdate() as date))
然后返回昨天的日期。因此,唯一的问题可能是[DATE]属性的格式。简单地说:
FROM
Person
JOIN Profit
ON Person.id = Profit.id
WHERE Table.[DATE] = DATEADD(DAY, -1, GETDATE() );
可能[日期]也需要转换:
FROM
Person
JOIN
Profit
ON
Person.id = Profit.id
AND CAST([DATE] as Date) = CAST(getdate () -1 as Date)
如果不希望时间成为日期的一部分,请使用此选项
SELECT *
FROM Person
JOIN Profit ON Person.id = Profit.id
AND [DATE] = CONVERT(VARCHAR, DATEADD(DAY, -1, GETDATE()), 106)
如果您有带日期的列:
SELECT * from Person p join Profit pr
on (p.id = pr.person_id and pr.`date` = SUBDATE(CURDATE(),1))
我认为您应该在之间使用
,如下所示:
FROM
Person
JOIN Profit
ON Person.id = Profit.id
AND [DATE] BETWEEN CONVERT(date, GETDATE()-1) AND CONVERT(date, GETDATE()-1)
添加示例数据和所需结果。您将获得一个正确的getdate()-1返回昨天的日期。@Yogesharma我只想返回昨天results@RyanGadsdon两个表中是否都有DATE
列?我们可以看看示例数据吗?我们无法确定是什么导致了这样的问题。我们尝试过使用between来传递日期吗?getdate()-1
returndate,为什么需要CAST
?@Sami'getdate'本身也会返回时间等。casting as DATE只返回日期,这就是为什么我说也要为[DATE]执行此操作的原因所以它们都是完全相同的格式这是哪个数据库服务器?mySQL?是的,它是mySQL数据库。@user8270653这个问题用SQL Server man标记,你能在那里看到mySQL吗?