我正在尝试使用DatePart
返回两位数小时。我想看看01, 02, 03, ...10, 11, 12
几个小时。我怎样才能做到这一点?
如果我输入查询,
select DATEPART(hour,'1900-01-01 07:45:00.010')
然后我得到答案7
。我需要得到答案07
。
我正在尝试使用DatePart
返回两位数小时。我想看看01, 02, 03, ...10, 11, 12
几个小时。我怎样才能做到这一点?
如果我输入查询,
select DATEPART(hour,'1900-01-01 07:45:00.010')
然后我得到答案7
。我需要得到答案07
。
为 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)
我无法将上述* 解决方案用于 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”作为字符串到字符串的连接,而不是字符串到数字的连接。
尝试FORMAT函数(在 Sql Server 2012 中支持) -
DECLARE @d DATETIME = '1900-01-01 07:45:00.010';
SELECT FORMAT(@d, 'hh' )
>07
在 MySQL 中,
SELECT LPAD(thing_to_pad, 2, '0')
在 MS SQL 中(我认为 - 我不使用它):
SELECT RIGHT('0' + thing_to_pad, 2)
在 MS SQL 中
select right('0' + DATEPART(hour,'1900-01-01 07:45:00.010'),2)
这是作品
你可以对 mssql 这样做;
RIGHT('0' + RTRIM(DATEPART(dd, date)), 2)