将日期/时间转换为正常时间

时间:2015-01-23 20:32:20

标签: sql-server-2008 datetime

我有一个表达时间的字段:

1900-01-01 07:00:00.000

但是我想将其转换为上午07:00。我能找到的最接近的是:

Convert(Varchar(20), DT.EarlyShiftStart, 114)

这让我:

10:30:00:000

但是我想减少毫秒并添加AM / PM。有人知道正确的价值吗?

1 个答案:

答案 0 :(得分:1)

数据和数据的显示最好保持分开。这样可以更轻松地调整用户看到的内容,而无需深入研究编程的内部。例如,如果您将数据库输出日期时间作为字符串,那么以不同格式显示这些日期时间将更加困难 - 如果您想在本地时间显示它,那么它将不得不转换回时间,调整,然后转换回字符串。如果您通过在数据库层删除日期信息而丢弃了日期信息,那么这可能是不可能的。即使从12小时改为24小时格式也会很麻烦。

由于数据(可能)在SSRS中使用,因此最好利用其中存在的格式化功能。例如,你可以按照

的方式做你想做的事
=Format(yourTime, "hh:mm tt")
SSRS中的

。然后,如果您想在报告的某个特定部分显示24小时时间,那么只需要使用类似

的内容
=Format(yourTime, "HH:mm")

报告中需要12小时时间的任何其他地方都可以保持不变。