8

我正在尝试使用DatePart返回两位数小时。我想看看01, 02, 03, ...10, 11, 12几个小时。我怎样才能做到这一点?

如果我输入查询,

select DATEPART(hour,'1900-01-01 07:45:00.010')

然后我得到答案7。我需要得到答案07

4

6 回答 6

15

为 MySql 或SQL Server 2012试试这个-

select FORMAT(DATEPART(hour,'1900-01-01 07:45:00.010'),'00')

对于 2012 年之前的 SQL Server -

select right('0' + DATEPART(hour,'1900-01-01 07:45:00.010'),2)
于 2012-12-07T07:24:33.333 回答
8

我无法将上述* 解决方案用于 SQL Server 2008。

对我有用的是:

select right('0' + convert(varchar,DATEPART(hour,'1900-01-01 07:45:00.010')),2)

返回

07

*以上所有 SQL Server 解决方案都为我返回“7”,而不是“07”。相反,我使用了convert(varchar...将“0”+“07”作为字符串到字符串的连接,而不是字符串到数字的连接。

于 2014-07-09T23:16:55.243 回答
2

尝试FORMAT函数(在 Sql Server 2012 中支持) -

DECLARE @d DATETIME = '1900-01-01 07:45:00.010';
SELECT FORMAT(@d, 'hh' )
>07
于 2012-12-07T07:49:07.887 回答
1

在 MySQL 中,

SELECT LPAD(thing_to_pad, 2, '0')

在 MS SQL 中(我认为 - 我不使用它):

SELECT RIGHT('0' + thing_to_pad, 2)
于 2012-12-07T07:25:26.340 回答
0

在 MS SQL 中

select right('0' + DATEPART(hour,'1900-01-01 07:45:00.010'),2)

这是作品

于 2014-01-09T06:37:34.557 回答
0

你可以对 mssql 这样做;

 RIGHT('0' + RTRIM(DATEPART(dd, date)), 2)
于 2014-10-23T08:53:38.607 回答