如何只保留日期时间值(SQL Server)的时间部分?

以下是我用来获取HH:MM字符串的内容:

CONVERT(varchar(5), time_requested, 108)

我在想可能会有更优雅的方式,甚至可能更有效(请参阅类似的问题,关于如何删除日期时间值(SQL Server)的时间部分?)。

要求:

  • 最终的结果必须是易于转换为字符串(为了能够级联一些字段time_created具有场如date_created )。
  • 必须涵盖以下两种情况: HH:MMHH:MM:SS

  • Declare @D datetime = GetDate()      -- Data Type could be Time as well
    
    Select CONVERT(varchar(8), @D, 108)  -- for HH:MM:SS  11:27:26
    Select CONVERT(varchar(5), @D, 108)  -- for HH:MM     11:27
    

    没有提及,如果2012+你也可以使用Format()

    Declare @D DateTime = '2016-10-22 13:30:25'
    
    Select Format(@D,'HH:mm')         -- 13:30
    Select Format(@D,'hh:mm:ss tt')   -- 01:30:25 PM
    

    这太长了评论。

    你的方法很好。 它生成值的字符串表示。

    您也可以转换为time数据类型:

    select cast(time_requested as time)
    

    但请注意,这是“无格式” - 它包含小时,分钟,秒和秒的小数部分。 所以,你的方法可能是更好的方法。

    链接地址: http://www.djcxy.com/p/94367.html

    上一篇: How to only keep the time portion of a datetime value (SQL Server)?

    下一篇: How can I select the first day of a month in SQL?