使用DATEPART获取小时数时如何显示两位数字?
解决SQL小时格式带前导零的问题
你当前使用DATEPART(HOUR, GETDATE()) AS HOURS获取的小时数是0、1、2……这类单数字格式,想要转为00、01、02……09、10……23的两位带前导零格式,可以试试以下几种方法:
方法一:使用FORMAT函数(适用于SQL Server 2012及以上版本)
直接用FORMAT函数指定HH格式符,自动返回两位24小时制小时数:FORMAT(GETDATE(), 'HH') AS HOURS方法二:使用RIGHT+CONCAT组合(兼容低版本SQL Server)
通过拼接固定前缀再截取后两位的方式实现补零:RIGHT(CONCAT('00', DATEPART(HOUR, GETDATE())), 2) AS HOURS原理是先把小时数和
00拼接,比如小时为5时会得到005,取右边两位就是05;小时为12时得到0012,取右边两位就是12,完美匹配需求。方法三:使用STR+RIGHT组合
借助STR函数将小时数转为固定宽度的字符串,再截取后两位:RIGHT(STR(DATEPART(HOUR, GETDATE()), 2), 2) AS HOURSSTR函数会把数字转为指定宽度的字符串,不足时前面补空格,再通过RIGHT取两位就能得到带前导零的格式。
内容的提问来源于stack exchange,提问作者Youssi
相关产品推荐
相关产品推荐

