如何在sql中将24小时转换为12小时

时间:2016-04-12 13:19:53

标签: sql sql-server database

我有24小时的栏目,我需要将其更改为12小时,请帮忙。

Start time
  174300
  035800
  023100

结果应为

 Start time
  05.43 PM
  03.58 AM
  02.31 AM

3 个答案:

答案 0 :(得分:1)

使用STUFF函数将字符串转换为Time格式

SELECT CONVERT(VARCHAR,CAST(STUFF(STUFF(ColumnName,3,0,':'),6,0,':') AS TIME),100)

答案 1 :(得分:0)

使用上述示例之一 - 以下内容将起作用。 您需要将数据拆分为小时/分钟并将其转换为时间格式,而不是将其转换为相关类型:

declare @data int
set @data = 174300



select convert(VARCHAR(15),cast(cast(left(@data, 2 )as varchar(2)) + ':' + cast(substring(cast(@data as nvarchar(6)), 3,2 )as varchar(2) ) as time),100)

答案 2 :(得分:0)

不要将时间存储为varchar,而是更改表并将列类型更改为datetime。

SELECT right(convert(varchar(25), Start Time, 100), 7)

你在函数中看到的100指定了日期格式mon dd yyyy hh:miAM(或PM),从那里我们只需抓住正确的字符。

您可以详细了解如何转换日期时间here.