有在下面的格式日期值,在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?或约会?你能显示表格模式吗? –