以时间格式删除冒号并附加值

时间:2016-03-03 17:19:39

标签: sql-server

我正在制作一个场景,我需要按以下格式存储时间:

10:23:56 - > 102356

是否可以将上述格式存储在MS SQL的 time 数据类型列中?

1 个答案:

答案 0 :(得分:2)

这不是time数据类型。

  • 您可以将其另存为time并在查询表时格式化输出。

  • 或格式化输出并将其另存为字符串。

使用RIGHT确保所有数字都是两位数

SELECT 
    CONCAT(
       RIGHT('00'+ DATEPART(HOUR  , GETDATE()), 2),
       RIGHT('00'+ DATEPART(MINUTE, GETDATE()), 2),
       RIGHT('00'+ DATEPART(SECOND, GETDATE()), 2)
   )
;

如上所述CONCAT仅适用于2012+更通用的方法

SELECT 
    RIGHT('00'+ CAST(DATEPART(HOUR  , GETDATE()) AS VARCHAR(2) ), 2) +
    RIGHT('00'+ CAST(DATEPART(MINUTE, GETDATE()) AS VARCHAR(2) ), 2) +
    RIGHT('00'+ CAST(DATEPART(SECOND, GETDATE()) AS VARCHAR(2) ), 2)
;