有在下面的格式日期值,在SQL Server的一個2000表轉換12小時格式到24小時格式在SQL Server
10/1/2013 10:39:14 PM
10/1/2013 6:39:04 PM
10/1/2013 8:19:31 AM
10/1/2013 3:35:40 AM
如何將上述格式的數據值轉換成24小時日期格式,如下圖所示
10/1/2013 10:39
10/1/2013 18:39
10/1/2013 8:19
10/1/2013 3:35
有在下面的格式日期值,在SQL Server的一個2000表轉換12小時格式到24小時格式在SQL Server
10/1/2013 10:39:14 PM
10/1/2013 6:39:04 PM
10/1/2013 8:19:31 AM
10/1/2013 3:35:40 AM
如何將上述格式的數據值轉換成24小時日期格式,如下圖所示
10/1/2013 10:39
10/1/2013 18:39
10/1/2013 8:19
10/1/2013 3:35
試試這個:
首先轉換varchar
日期datetime
然後你就可以在方法操縱你想要爲:
-- CONVERT TO DATETIME TO GET 24HR FORMAT
SELECT CONVERT(DATETIME, '10/1/2013 6:39:04 PM', 0)
-- Concatenate in required format
SELECT CONVERT(VARCHAR(10), CONVERT(DATETIME, '10/1/2013 6:39:04 PM', 0), 101)
+ ' '+ CONVERT(VARCHAR(5),CONVERT(DATETIME, '10/1/2013 6:39:04 PM', 0), 108)
謝謝。它工作。 – amnippon
Declare @s DateTime = '2012-12-26 11:00:00.000 PM'
select stuff(convert(varchar(19), @s, 126),11,1,' ')
我在sql-server 2012 –
中做了這個,第一行有一個隱式轉換。如果OP將日期存儲爲字符串,則最好在示例 –
中使用varchar變量。謝謝。但是我不認爲我可以在日期時間變量 – user1254579
declare @Hour_Part AS VARCHAR(50)
declare @Min_Part AS VARCHAR(50)
declare @Sec_Part AS VARCHAR(50)
declare @PMORAM AS VARCHAR(5)
SELECT @Hour_Part = DATEPART(HOUR,CONVERT(VARCHAR(50),GETDATE(),108))
SELECT @PMORAM = RIGHT(CONVERT(VARCHAR(30), GETDATE(), 9), 2)
IF @Hour_Part = 12 AND @PMORAM = 'AM'
BEGIN
SET @Hour_Part = '00'
select @Min_Part = DATEPART(MINUTE,CONVERT(VARCHAR(50),GETDATE(),108))
select @Sec_Part = DATEPART(SECOND,CONVERT(VARCHAR(50),GETDATE(),108))
select @Hour_Part + ':' + @Min_Part + ':' + @Sec_Part AS DateTime24
END
ELSE IF @Hour_Part > 0 AND @Hour_Part < 12 AND @PMORAM = 'PM'
BEGIN
SET @Hour_Part = @Hour_Part + 12
select @Min_Part = DATEPART(MINUTE,CONVERT(VARCHAR(50),GETDATE(),108))
select @Sec_Part = DATEPART(SECOND,CONVERT(VARCHAR(50),GETDATE(),108))
select @Hour_Part + ':' + @Min_Part + ':' + @Sec_Part AS DateTime24
END
ELSE
BEGIN
select @Min_Part = DATEPART(MINUTE,CONVERT(VARCHAR(50),GETDATE(),108))
select @Sec_Part = DATEPART(SECOND,CONVERT(VARCHAR(50),GETDATE(),108))
select @Hour_Part + ':' + @Min_Part + ':' + @Sec_Part AS DateTime24
END
在SQL Server 2012中,我們可以使用格式功能有合適的日期時間格式。 24小時日期時間格式使用大寫字母'HH:mm:ss'。
實施例 -
查詢(24小時格式):
Select Format(cast('2016-03-03 23:59:59' as datetime),'dd-MMM-yyyy HH:mm:ss','en-us'). ('HH:mm:ss' in Capital letters)
結果
03-Mar-2016 23:59:59
查詢(12小時格式):
Select Format(cast('2016-03-03 23:59:59' as datetime),'dd-MMM-yyyy hh:mm:ss','en-us'). ('hh:mm:ss' in Capital letters)
結果
03-Mar-2016 11:59:59
這個查詢返回一個錯誤,它說「在輕量級池中不支持公共語言運行庫(CLR)執行。禁用」clr enabled「或」lightweight pooling「兩個選項中的一個。在格式化功能以外的12小時格式中轉換時間有什麼方法嗎? – niq
你保存你日期爲varchar?或約會?你能顯示錶格模式嗎? –