8

DatePart2桁の時間を返すために使用しようとしています。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 ソリューションは、「07」ではなく「7」を返しました。代わりに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

mssql ではこのようにすることができます。

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