Convert a 12 hour format to 24 hour format in sql server

use*_*579 3 sql sql-server sql-server-2005 sql-server-2008 sql-server-2008-r2

there are date values in the below format,in one of the sql server 2000 tables

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
Run Code Online (Sandbox Code Playgroud)

how to convert the above format data values into a 24hour date format,as shown below

10/1/2013 10:39
10/1/2013 18:39
10/1/2013 8:19
10/1/2013 3:35
Run Code Online (Sandbox Code Playgroud)

Dee*_*kha 10

试试这个:

首先将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)
Run Code Online (Sandbox Code Playgroud)


小智 10

在SQL Server 2012中,我们可以使用Format函数来获得合适的日期时间格式.使用大写字母'HH:mm:ss'24小时日期时间格式.

示例 -

查询(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)
Run Code Online (Sandbox Code Playgroud)

结果

03-Mar-2016 23:59:59
Run Code Online (Sandbox Code Playgroud)

查询(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)
Run Code Online (Sandbox Code Playgroud)

结果

03-Mar-2016 11:59:59
Run Code Online (Sandbox Code Playgroud)