SQL自动将24小时格式时间转换为12小时格式

时间:2017-09-14 16:59:53

标签: sql sql-server date

时间在我的桌子上可见如下

2017-09-15 16:30:00.000

我的查询就像这样

Format(SlotStartTime,'dd/MM/yyyy hh:mi:ss') as SlotStartTime

这会像这样返回时间

15/09/2017 04:30:00

因此计算错误应该是15/09/2017 04:30:00 PM或保持24小时格式。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:3)

hh给你12小时 HH为您提供24小时

此外,mi可能是一个拼写错误,因为它会返回一分钟,然后是i字母。试试这个:

declare @datetime datetime = '2017-08-29 16:30:01'
select Format(@datetime,'dd/MM/yyyy HH:mm:ss') as SlotStartTime

您可以在此处找到所有有效的日期时间格式字符:https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings

答案 1 :(得分:3)

hh是12小时格式的代码。 HH是24小时格式的代码。它类似于mm(不是mi)的分钟数,MM是几个月。

你想:

FORMAT(SlotStartTime,'dd/MM/yyyy HH:mm:ss')

12小时的时间段:

FORMAT(SlotStartTime,'dd/MM/yyyy hh:mm:ss tt')