2013-09-30 61 views
2

如何消除查詢中的秒部分。我用DateADD顯示秒部分爲0,但我只是想忽略它。我只想顯示日期小時:分鐘 我已經使用這個查詢並返回我是這樣的Sql Server Datetime2:消除datetime2中的秒部分

SELECT DATEADD(minute, DATEDIFF(minute,0,GETDATE()), 0) 

2013-09-30 13:03:00.000 

但我只想要2013-09-30 13:03一部分。

任何人都可以幫助我嗎?

回答

3

如果你正在處理的格式,那麼你有落得什麼是,而不是一個datetime值 - datetime S(或datetime2 S)不的格式。

所以你需要轉換爲一個字符串。有沒有format完全匹配你問什麼,但如果你做一個轉換,不給CONVERT足夠的空間,它截斷結果:

SELECT CONVERT(varchar(16),GETDATE(),120) 
+0

感謝您的答覆。我的查詢運行完美,但實際上我用日期時間格式插入它,我只需要顯示在沒有字符串的格式,所以它給了我例外的代碼。 –

+0

爲此,我必須更改getter setter,以便將使問題..任何方式噸轉換獲得的日期回到日期時間? –

+0

@NosheenJaved - 當你有一個'datetime'(在SQL或者C#中),那麼就像我說的那樣,它們沒有*格式。它們只有一些內部表示(通常是純數字) - 因爲這些類型是固定的和預定義的 - 沒有辦法將類型修改爲'datetime-but-in-this-instance-please-ignore-the-seconds' 。您需要學習將格式化問題與數據存儲問題分開。 –

2

您不能保留datetime2格式並截斷其中的一部分。
可嘗試以下之一:

SELECT CAST(GETDATE() as date) 
SELECT CONVERT(varchar(16),GETDATE(),120) 

如果仍然不給你你想要什麼,你可以看到許多其他可能的轉換中this post