You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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 HOURS
    

    STR函数会把数字转为指定宽度的字符串,不足时前面补空格,再通过RIGHT取两位就能得到带前导零的格式。

内容的提问来源于stack exchange,提问作者Youssi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 04:10:35