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

时间:2016-10-22 15:16:13

标签: sql-server datetime date-conversion

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

CONVERT(varchar(5), time_requested, 108)

我认为可能有更优雅的方式,甚至可能更有效率(请参阅How to remove the time portion of a datetime value (SQL Server)?上的类似问题)。

要求:

  • 最终结果必须可以轻松转换为字符串(以便能够将某些字段time_createddate_created)字段连接起来。
  • 必须涵盖以下两种情况:HH:MMHH:MM:SS

2 个答案:

答案 0 :(得分:3)

field

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

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

答案 1 :(得分:2)

评论太长了。

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

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

select cast(time_requested as time)

但请注意,这是"格式少" - 它包含小时,分钟,秒和几分之一秒。所以,你的方法可能是更好的方法。