yyyy - varchar datetime sql




如何將DateTime轉換為時間 (3)

我正在使用 CAST 語法將 DateTime 字段強制轉換為Time。

select CAST([time] as time) as [CSTTime]

日期時間 2015-03-19 00:00:00.000

當前輸出:時間 03:05:36.0000000

我只需要 HH:MM:SS ,不需要毫秒或0000

如何將其過濾或強制轉換為確切的 HH:MM:SS 格式。


上面的所有答案都是正確的,僅在2012+年供參考,您還可以這樣做:

DECLARE @date datetime2 = SYSDATETIME()

SELECT FORMAT(@date, N'hh:mm:ss', N'en-US')
SELECT TIMEFROMPARTS(DATEPART(hh, @date), DATEPART(mm, @date), DATEPART(ss, @date),0,0)

FORMAT() 允許您選擇分隔符和 culture 。 它將返回 NVARCHAR 數據類型。

TIMEFROMPARTS() 允許您選擇精度,並且在您希望以任何方式舍入時間戳時都非常方便,因為它將內部的所有值都視為int數字。 它將返回 TIME 數據類型。


您可以使用 CAST 來實現,只需簡單地使用 TIME(0) 數據類型,如下所示:

SELECT CAST('2015-03-19 01:05:06.289' AS TIME(0))

輸出:

01:05:06


SQL Server 2008:

select cast(MyDate as time) [time] from yourtable

早期版本:

select convert(char(5), MyDate , 108) [time] from yourtable

其他選項:

SELECT CONVERT(VARCHAR(20), GETDATE(), 114)

從日期時間獲取時間 而沒有毫秒 堆棧的最簡單方法是:

SELECT CONVERT(time(0),GETDATE())

小時和分鐘

SELECT substring(CONVERT(VARCHAR, GETDATE(), 108),0,6) AS Time




sql-server-2008