这是我迄今为止的目标
declare @Today smalldatetime
Set @Today = GETDATE()
select @Today
产额
2011-03-10 13:46:00
我需要的是:
2011-03-09
答案 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