2009-02-11 123 views

回答

15

一種方法是改變getdate()你的列名,

select dateadd(dd, datediff(dd, 0, getdate())+0, 0) 
1

是的。有許多格式可供選擇,所以我將鏈接它。

http://library.cirr.com/Microsoft/SQL-Server-v7/html/ca-co_1.htm

如果您希望像您的文章意味着零出的時候,你可以試試這個:

select cast(convert(varchar, getdate(), 101) as datetime) 
+1

convert(datetime,convert(varchar,getdate(),101)) – 2009-02-11 20:11:16

+0

斷開的鏈接。該頁面的新鏈接http://library.cirr.com/Microsoft/SQL-Server-v7/html/ca-co_1.htm – monkeypushbutton 2010-04-23 20:07:40

1

轉換(VARCHAR,日期字段/值/等,101)

這是從日期時間獲取日期的最簡單方法。

0
declare @CurrentDate datetime 
set @CurrentDate = dateadd(dd, datediff(dd, 0, getdate()), 0) 

- 或 -

select dateadd(dd, datediff(dd, 0, MyDateColumn), 0) as DateOnly 
from tblX 
0

在我的搜索我遇到了以下解決方案來了,這條時間僅在UTC時間之外,但我發現它很有趣,所以我認爲別人也會這麼想:

FUNCTION TrimDate(@dt AS DATETIME) RETURNS DATETIME 
BEGIN 
    RETURN CAST(CAST((@dt - 0.500000038580247) AS INT) AS DATETIME) 
END 

我會認爲它運行得很快,因爲它所做的全部都是四捨五入和投射。

5

這裏的另一種解決方案:

SELECT CAST(FLOOR(CAST(GETDATE() AS float)) AS smalldatetime) 
25

爲什麼不直接轉換迄今:

select convert(date, getdate()) 

這截斷天,未發。若要舍入日期,請​​執行以下操作:

select convert(date, getdate() + 0.5)