【问题标题】:Converting Date/Time to Just Time将日期/时间转换为时间
【发布时间】:2015-01-23 20:32:19
【问题描述】:

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

1900-01-01 07:00:00.000

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

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

这给了我:

10:30:00:000

但我想去掉毫秒并添加 AM/PM。有人知道正确的值吗?

【问题讨论】:

  • 您应该在软件的用户界面层执行此操作 - 是否有这样的层,例如使用数据库的程序?
  • 相信它最终会被用在 SSRS 报告中。
  • 感谢 Andrew,我将让报表处理它希望如何显示时间,然后将其保留在视图中。他们可能想要 24 小时,而不是我想要的 12 小时。
  • 我根据您的 cmets 对我的 cmets 进行了一些扩展,并将其作为您的答案。

标签: sql-server-2008 datetime


【解决方案1】:

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

由于数据(可能)用于 SSRS,因此最好利用其中的格式化功能。例如,您可以按照以下方式做您想做的事情

=Format(yourTime, "hh:mm tt")

在 SSRS 中。然后,如果您想在报告的某个特定部分显示 24 小时制,则只需使用类似

=Format(yourTime, "HH:mm")

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    • 2017-08-29
    • 2011-07-05
    • 2011-05-30
    • 1970-01-01
    相关资源
    最近更新 更多