2017-10-11 62 views
0

我在SQL Server 2008表中有time列。我只想選擇hh:mm並刪除(秒)ss部分。在SQL Server 2008中只選擇時間列中的hh:mm部分

最重要的是,我想返回時間作爲數據類型,並且不想轉換爲varchar

有什麼辦法嗎?

+0

您正在使用哪個數據庫?你到目前爲止嘗試了什麼? hh:mm:ss存儲在字符串中嗎? – saitejalakkimsetty

+0

[如何從DateTime獲取小時和分鐘]可能的重複(https://stackoverflow.com/questions/27979307/how-to-get-hour-and-minute-only-from-a-datetime) –

+0

數據庫:SQL 2008,我試圖轉換爲varchar,但前端使用時間跨度,所以它會引發錯誤。我需要時間數據類型,但只有HH:MM – dinesh

回答

0

你可以使用日期部分內置函數(我已經cheked並在SQL 2008提供)

SELECT cast(DATEPART(hour, MyDateColumn) as varchar) + ':' + cast(DATEPART(minute, MyDateColumn) as varchar) from MyTeable 

我希望它能幫助,

胡安

編輯: 如果你需要的是時間值,那麼你可以將它轉換爲:

SELECT CONVERT(TIME, 
     cast(DATEPART(hour, MyDateColumn) as varchar) 
     + ':' 
     + cast(DATEPART(minute, MyDateColumn) as varchar) 
     ) 
from MyTable 
+0

thx jaun,但我不想轉換爲varchar,因爲前端使用的是時間跨度,這會引發錯誤,並且我不想更改前端 – dinesh

+0

這就是另一個問題,給appart,你不應該直接從前端層訪問數據訪問層...你的代碼不可能再次投入到時間跨度? (我要去尋找另一個演員來回復一個時間段,我會在3分鐘內編輯我的答案) – Juan

+0

我試過了上面的答案,但是當我們轉換爲時間時,它會返回如下的值:09:00:00.0000000,這不是我們需要的 – dinesh

0

可以使用,

CONVERT(DATETIME, CONVERT(VARCHAR(5),table.time,108), ,table.time) AS [Time]

0

轉換爲varchar和108是GET HH使用:mm:ss的,但使用VARCHAR(5)獲得HH:MM,然後在時間轉換

SELECT convert(time,CONVERT(VARCHAR(5),getdate(),108)) 
+0

Ronak,當我們再次嘗試轉換回時間時,它將轉換爲hh:mm:ss – dinesh

+0

運行上述查詢返回09:00:00.0000000 – dinesh