這裏是我有什麼到目前爲止SQL-日期 - 問:如何獲得昨天的日期在以下formatte
declare @Today smalldatetime
Set @Today = GETDATE()
select @Today
產量
2011-03-10 13:46:00
我需要的是:
2011-03-09
這裏是我有什麼到目前爲止SQL-日期 - 問:如何獲得昨天的日期在以下formatte
declare @Today smalldatetime
Set @Today = GETDATE()
select @Today
產量
2011-03-10 13:46:00
我需要的是:
2011-03-09
試試這個:
SELECT REPLACE(CONVERT(VARCHAR, DATEADD(dd, -1, GETDATE()), 102), '.', '-')
GETDATE()
返回當前的日期/時間。
DATEADD(dd, -1, GETDATE())
從當前日期/時間一天減少。
CONVERT(VARCHAR, @DATE, 102)
日期轉換爲ANSI格式yyyy.mm.dd
和REPLACE將帶有連按你的例子替換預定義的格式週期。
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
對於2008年,你可以利用新的數據類型DATE的:
SELECT CAST(DATEADD(d,-1,GETDATE()) AS DATE) AS Yesterday
對於所有版本:
SELECT CONVERT(CHAR(10), DATEADD(d,-1,GETDATE()), 120) AS Yesterday
顯然,每種方法返回的數據類型是不同的。
奇怪... SQL文檔說格式120包括hh:mm:ss - 錯誤的文檔版本? – 2011-03-10 19:00:33
@Dylan Beattie,120是你說的,但是對CHAR(10)的演員丟棄時間。 – bobs 2011-03-10 19:01:53
@Dylan:否。通過爲轉換數據類型指定'CHAR(10)',我們只能得到完整的'yyyy-mm-dd hh:mi:ss'字符串的前10個字符。 – 2011-03-10 19:02:13
SELECT CONVERT(VARCHAR, DATEADD(d,-1,GETDATE()), 110) AS Yesterday
這給了'mm-dd-yyyy'。 OP要求'yyyy-mm-dd'。 – 2011-03-10 19:17:24
只需使用23作爲格式參數,如:SELECT CONVERT(VARCHAR,DATEADD(d,-1,GETDATE()),23)AS昨天 – 2011-03-10 19:26:15
@K Invaov:有趣的是,我從來沒有見過23個地方記錄過任何地方。 – 2011-03-10 19:29:38
110應該在SQL中返回格式化的mm-dd-yyyy http://www.w3schools.com/sql/func_convert.asp – iivel 2011-03-10 19:16:39