我正在制作一个场景,我需要按以下格式存储时间:
10:23:56 - > 102356
是否可以将上述格式存储在MS SQL的 time 数据类型列中?
答案 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)
;