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

时间:2011-03-10 18:49:46

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

这是我迄今为止的目标

declare @Today smalldatetime
Set @Today = GETDATE()
select @Today

产额

2011-03-10 13:46:00

我需要的是:

2011-03-09

4 个答案:

答案 0 :(得分:9)

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

SELECT CAST(DATEADD(d,-1,GETDATE()) AS DATE) AS Yesterday

对于所有版本:

SELECT CONVERT(CHAR(10), DATEADD(d,-1,GETDATE()), 120) AS Yesterday

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

答案 1 :(得分:9)

试试这个:

SELECT REPLACE(CONVERT(VARCHAR, DATEADD(dd, -1, GETDATE()), 102), '.', '-')

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

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

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

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

答案 2 :(得分:2)


SELECT CONVERT(varchar, DATEADD(d,-1,GETDATE()), 110) 


SELECT CAST(DATEADD(d,-1,GETDATE()) AS DATE) AS 'DATE' 

如果您再次需要这些代码,请提供良好的参考。 http://www.w3schools.com/sql/func_convert.asp

答案 3 :(得分:1)

SELECT CONVERT(VARCHAR, DATEADD(d,-1,GETDATE()), 110) AS Yesterday