Sql server 2008 如何检索上一个日期并在查询中使用它?

Sql server 2008 如何检索上一个日期并在查询中使用它?,sql-server-2008,date,select,Sql Server 2008,Date,Select,我想检索上一个日期,即当前日期减去1,并通过=运算符在查询中使用它 我得到以下查询以检索上一个日期: 选择DATEADDDD,DATEDIFFDY,0,GETDATE,-1 它给出:2011-03-14 00:00:00.000 我只想得到:2011-03-14,并在查询中使用它来检查列的数据 比如: 从“值列表”中的第1列和日期=上一个日期的表格中选择* 我如何将两者结合起来,并以我想要的格式获得它?这可能会解决您的问题 select * from table where column1 i

我想检索上一个日期,即当前日期减去1,并通过=运算符在查询中使用它

我得到以下查询以检索上一个日期:
选择DATEADDDD,DATEDIFFDY,0,GETDATE,-1

它给出:2011-03-14 00:00:00.000

我只想得到:2011-03-14,并在查询中使用它来检查列的数据

比如: 从“值列表”中的第1列和日期=上一个日期的表格中选择*


我如何将两者结合起来,并以我想要的格式获得它?

这可能会解决您的问题

select * from table where 
column1 in ('values list') and 
DATEADD(DD, DATEDIFF(DY, 0, date), 0)=DATEADD(DD, DATEDIFF(DY, 0, GETDATE()), -1)

这可能会解决您的问题

select * from table where 
column1 in ('values list') and 
DATEADD(DD, DATEDIFF(DY, 0, date), 0)=DATEADD(DD, DATEDIFF(DY, 0, GETDATE()), -1)
使用:

关于使用:

select * from table where column1 in ('values list') 
and CAST(date as DATE)=CAST(DATEADD(DD, DATEDIFF(DY, 0, GETDATE()), -1) as DATE)

问候

我得到了我想要的东西:
select * from table where column1 in ('values list') 
and CAST(date as DATE)=CAST(DATEADD(DD, DATEDIFF(DY, 0, GETDATE()), -1) as DATE)
选择CONVERTVARCHAR10、DATEADDDD、DATEDIFFDD、0、GETDATE、-1120


谢谢你的帮助

我得到了我想要的:
declare @date varchar(10);
SELECT @date=(CONVERT(VARCHAR(10),DATEADD(DD,-1,GETDATE()),120))
select * from EMPOFFADDRESS where convert(varchar(10),entry`enter code here`date,120) = @date
选择CONVERTVARCHAR10、DATEADDDD、DATEDIFFDD、0、GETDATE、-1120



谢谢你的帮助

你在从应用程序发送参数值吗?如果是,你正在用php或.net开发哪个应用程序?@Emaad:我将使用.net来实现这一点。我将使用这个查询的可能是一个脚本。好的,你在那个查询中发送参数了吗,ryt?你是说日期?我想从系统中检索它,并获取当前日期之前的日期,然后检查表中新获取的日期。您是否正在从应用程序发送参数值?如果是,您正在用php或.net开发哪个应用程序?@Emaad:我将使用.net进行此操作。我将使用这个查询的可能是一个脚本。好的,你在那个查询中发送参数了吗,ryt?你是说日期?我想从系统中检索它,获取当前日期之前的日期,然后检查表中新获取的日期。@Ashish:我需要将以前的日期与数据库中的日期相等。我该怎么做?日期=上一个日期。这里您有您的自定义格式的上一个_日期。您可以更改[Date]列的格式,使其与上一个日期完全匹配。这将解决您的问题。我给你的上述查询的结果是什么?我得到一个错误:P:我在数据库中的日期是yyyy mm dd格式,我需要以相同的格式获取上一个日期以进行比较。选择DATEADDDD,DATEDIFFDY,0,GETDATE,0选择DATEADDDD,DATEDIFFDY,0,GETDATE,-1尝试此操作。它将简单地为您提供当前日期和以前日期的日期。现在,您只需要用GetDateIt替换Datecolumn,并用time组件替换它,这在我的表中不存在。我想要一种只提取日期部分的方法。@Ashish:我需要将上一个日期与数据库中的日期相等。我该怎么做?日期=上一个日期。这里您有您的自定义格式的上一个_日期。您可以更改[Date]列的格式,使其与上一个日期完全匹配。这将解决您的问题。我给你的上述查询的结果是什么?我得到一个错误:P:我在数据库中的日期是yyyy mm dd格式,我需要以相同的格式获取上一个日期以进行比较。选择DATEADDDD,DATEDIFFDY,0,GETDATE,0选择DATEADDDD,DATEDIFFDY,0,GETDATE,-1尝试此操作。它将简单地为您提供当前日期和以前日期的日期。现在,您只需要用GetDateIt替换Datecolumn,并用time组件替换它,这在我的表中不存在。我想要一种只提取日期部分的方法。由于某些原因,出现以下错误:必须声明标量变量@date。不过,一切似乎都井然有序。我发现,当你编辑答案时,如果是对自己答案的注释,除非你在带有@昵称符号的注释中称呼OP,否则不会通知OP。出于某种原因,出现以下错误:必须声明标量变量@Date。不过,一切似乎都井然有序。我发现,当您编辑答案时,除非您在注释中用@昵称符号对OP进行称呼(如果是对您自己的答案的注释),否则不会通知OP。感谢您提供此代码片段,它可能会提供一些即时帮助。通过说明为什么这是一个很好的解决问题的方法,正确地解释它的教育价值,并将使它对未来有类似但不完全相同问题的读者更有用。请在您的答案中添加解释,并说明适用的限制和假设。感谢您提供此代码片段,它可能会提供一些即时帮助。通过说明为什么这是一个很好的解决问题的方法,正确地解释它的教育价值,并将使它对未来有类似但不完全相同问题的读者更有用。请在回答中添加解释,并说明适用的限制和假设。
declare @date varchar(10);
SELECT @date=(CONVERT(VARCHAR(10),DATEADD(DD,-1,GETDATE()),120))
select * from EMPOFFADDRESS where convert(varchar(10),entry`enter code here`date,120) = @date