从 DATETIME2 获取 hour:minutes
Get hour:minutes from DATETIME2
我在 SQL Server 2008 R2 中遇到问题。我想从 DATETIME2
列中获取 HH:mm
。当我写这个语句时:
SELECT CONVERT(VARCHAR(5), getdate(), 8)
我得到了 11:19
的完美结果,但是当我尝试从以下位置获取时间时:
SELECT (CONVERT(VARCHAR(5), '1900-01-01 01:10:00.0000000', 8))
我得到结果 1900
但我需要 01:10
.
如何从这个语句中得到结果?我知道有多个这样的 questions/answers 但我没有找到任何符合我的问题的答案。
试试这个:
SELECT RIGHT('0' + CONVERT(VARCHAR(2),
DATEPART(HOUR, '1900-01-01 01:10:00.0000000')), 2) hh,
DATEPART(minute, '1900-01-01 01:10:00.0000000') mm
或
SELECT LEFT(CONVERT(TIME(0), '1900-01-01 01:10:00.0000000'), 2) hh , DATEPART(minute, '1900-01-01 01:10:00.0000000') mm
对于许多 24 小时制日期时间长度为 19 的格式,您可以使用以下内容
SELECT RIGHT('0' + CAST(DATEPART(HOUR, Substring('1900-01-01 01:10:00.0000000',1,19)) AS VARCHAR(2)), 2) + ':' + CAST(DATEPART(minute, substring('1900-01-01 01:10:00.0000000',1,19)) AS VARCHAR(2)) HHmm
希望对您有所帮助
试试这个,我想这就是你想要的。
这将给出答案:1:10
SELECT CONVERT(VARCHAR(5),CONVERT(DATETIME,'1900-01-01 01:10:00.000'),8)
你也可以试试这个
select convert(VARCHAR,DATEPART(HOUR,'1900-01-01 01:10:00.0000000'))+':'+CONVERT(VARCHAR,DATEPART(MINUTE,'1900-01-01 01:10:00.0000000'))
在SQL服务器端(例如在存储过程中),您可以使用这种转换:
declare @dt datetime2(0) = sysdatetime();
select @dt as [Date], left(convert(time(0), @dt, 108), 5) as [HH:mm];
如果您需要在客户端显示您的数据,例如报告或您的应用程序,最好使用客户端的格式化功能。这样,您就可以考虑首选日历系统、12 或 24 小时制等因素。
我在 SQL Server 2008 R2 中遇到问题。我想从 DATETIME2
列中获取 HH:mm
。当我写这个语句时:
SELECT CONVERT(VARCHAR(5), getdate(), 8)
我得到了 11:19
的完美结果,但是当我尝试从以下位置获取时间时:
SELECT (CONVERT(VARCHAR(5), '1900-01-01 01:10:00.0000000', 8))
我得到结果 1900
但我需要 01:10
.
如何从这个语句中得到结果?我知道有多个这样的 questions/answers 但我没有找到任何符合我的问题的答案。
试试这个:
SELECT RIGHT('0' + CONVERT(VARCHAR(2),
DATEPART(HOUR, '1900-01-01 01:10:00.0000000')), 2) hh,
DATEPART(minute, '1900-01-01 01:10:00.0000000') mm
或
SELECT LEFT(CONVERT(TIME(0), '1900-01-01 01:10:00.0000000'), 2) hh , DATEPART(minute, '1900-01-01 01:10:00.0000000') mm
对于许多 24 小时制日期时间长度为 19 的格式,您可以使用以下内容
SELECT RIGHT('0' + CAST(DATEPART(HOUR, Substring('1900-01-01 01:10:00.0000000',1,19)) AS VARCHAR(2)), 2) + ':' + CAST(DATEPART(minute, substring('1900-01-01 01:10:00.0000000',1,19)) AS VARCHAR(2)) HHmm
希望对您有所帮助
试试这个,我想这就是你想要的。
这将给出答案:1:10
SELECT CONVERT(VARCHAR(5),CONVERT(DATETIME,'1900-01-01 01:10:00.000'),8)
你也可以试试这个
select convert(VARCHAR,DATEPART(HOUR,'1900-01-01 01:10:00.0000000'))+':'+CONVERT(VARCHAR,DATEPART(MINUTE,'1900-01-01 01:10:00.0000000'))
在SQL服务器端(例如在存储过程中),您可以使用这种转换:
declare @dt datetime2(0) = sysdatetime();
select @dt as [Date], left(convert(time(0), @dt, 108), 5) as [HH:mm];
如果您需要在客户端显示您的数据,例如报告或您的应用程序,最好使用客户端的格式化功能。这样,您就可以考虑首选日历系统、12 或 24 小时制等因素。