15

在 SQL Server中,如何将getdate()输出格式化为 24 小时格式?YYYYMMDDHHmmSSHH

我已经YYYYMMDD完成了

select CONVERT(varchar,GETDATE(),112)

但这就是我所得到的。

谢谢。

4

7 回答 7

30

对于任何搜索具有 SQL Server 2012 的此功能的人,您都可以使用 FORMAT 函数:

SELECT FORMAT ( GETDATE(), 'yyyyMMddHHmmss') AS 'Custom DateTime'

这允许任何 .NET 格式字符串,使其成为有用的新增功能。

于 2013-10-22T10:50:29.933 回答
21
select replace(
       replace(
       replace(convert(varchar(19), getdate(), 126),
       '-',''),
       'T',''),
       ':','')
于 2011-09-23T04:24:59.997 回答
7

关闭但不完全符合您的要求:

select CONVERT(varchar, GETDATE(), 126)

例如

2011-09-23T12:18:24.837

(yyyy-mm-ddThh:mi:ss.mmm(无空格),ISO8601 无时区)

参考:CAST 和 CONVERT

无法使用CONVERT(). 另一种选择是执行字符串操作以创建您想要的格式。

于 2011-09-23T04:17:24.560 回答
4

尝试这个:

选择 CONVERT(varchar, GETDATE(), 120) 例如

2011-09-23 12:18:24(yyyy-mm-dd hh:mi:ss (24h) ,ODBC 规范)。

嗯。

于 2011-09-23T04:23:49.700 回答
2

另外的选择!

SELECT CONVERT(nvarchar(8), GETDATE(),112) + 
   CONVERT(nvarchar(2),DATEPART(HH,GETDATE())) + 
   CONVERT(nvarchar(2),DATEPART(MI,GETDATE())) + 
   CONVERT(nvarchar(2),DATEPART(SS,GETDATE()));
于 2014-04-22T06:36:28.650 回答
0

以这种方式转换日期时间需要多次调用才能转换。最好的用途是在返回 varchar 的函数中。

select CONVERT(varchar,GETDATE(),112) --YYYYMMDD
select CONVERT(varchar,GETDATE(),108) --HH:MM:SS

像这样在函数内部将它们放在一起

DECLARE @result as varchar(20)
set @result = CONVERT(varchar,GETDATE(),112) + ' ' + CONVERT(varchar,GETDATE(),108)
print @result

20131220 13:15:50

正如 Thinhbk 发布的那样,您可以使用select CONVERT(varchar,getdate(),20)select CONVERT(varchar,getdate(),120)非常接近您想要的。

于 2013-12-20T18:17:03.847 回答
-1
select CONVERT(nvarchar(8),getdate(),112) + 
case when Len(CONVERT(nvarchar(2),DATEPART(HH,getdate()))) =1 then '0' + CONVERT(nvarchar(2),DATEPART(HH,getdate())) else CONVERT(nvarchar(2),DATEPART(HH,getdate())) end +
case when Len( CONVERT(nvarchar(2),DATEPART(MI,getdate())) ) =1 then '0' + CONVERT(nvarchar(2),DATEPART(MI,getdate())) else CONVERT(nvarchar(2),DATEPART(MI,getdate())) end
于 2019-07-25T10:01:32.007 回答