SQL-Date-Question:如何以下列格式获取昨天的日期

Wil*_*IAM 12 c# sql date sql-server-2008

这就是我迄今为止所拥有的

declare @Today smalldatetime
Set @Today = GETDATE()
select @Today
Run Code Online (Sandbox Code Playgroud)

产额

2011-03-10 13:46:00
Run Code Online (Sandbox Code Playgroud)

我需要的是:

2011-03-09
Run Code Online (Sandbox Code Playgroud)

Joe*_*lli 9

对于2008,您可以利用新的DATE数据类型:

SELECT CAST(DATEADD(d,-1,GETDATE()) AS DATE) AS Yesterday
Run Code Online (Sandbox Code Playgroud)

适用于所有版本:

SELECT CONVERT(CHAR(10), DATEADD(d,-1,GETDATE()), 120) AS Yesterday
Run Code Online (Sandbox Code Playgroud)

显然,每种方法返回的数据类型都不同.


Dyl*_*tie 9

试试这个:

SELECT REPLACE(CONVERT(VARCHAR, DATEADD(dd, -1, GETDATE()), 102), '.', '-')
Run Code Online (Sandbox Code Playgroud)

GETDATE() 返回当前日期/时间.

DATEADD(dd, -1, GETDATE()) 从当前日期/时间减去一天.

CONVERT(VARCHAR, @DATE, 102) 将日期转换为ANSI格式 yyyy.mm.dd

并且REPLACE将根据您的示例用连字符替换预定义格式的句点.