如何将 getdate 格式化为 YYYYMMDDHHmmSS

发布于 2024-12-06 03:06:48 字数 246 浏览 2 评论 0原文

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

我已经完成了YYYYMMDD

select CONVERT(varchar,GETDATE(),112)

但这就是我所能得到的。

谢谢。

In SQL Server how do I format getdate() output into YYYYMMDDHHmmSS where HH is 24 hour format?

I've got the YYYYMMDD done with

select CONVERT(varchar,GETDATE(),112)

but that is as far as I got.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

逆蝶 2024-12-13 03:06:48

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

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

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

Just for anyone searching for this functionality that has SQL Server 2012 you can use the FORMAT function:

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

This allows any .NET format strings making it a useful new addition.

小傻瓜 2024-12-13 03:06:48
select replace(
       replace(
       replace(convert(varchar(19), getdate(), 126),
       '-',''),
       'T',''),
       ':','')
select replace(
       replace(
       replace(convert(varchar(19), getdate(), 126),
       '-',''),
       'T',''),
       ':','')
身边 2024-12-13 03:06:48

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

select CONVERT(varchar, GETDATE(), 126)

例如

2011-09-23T12:18:24.837

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

参考:CAST 和 CONVERT

无法指定自定义格式CONVERT()。另一个选项是执行字符串操作以创建您想要的格式。

Close but not exactly what you are asking for:

select CONVERT(varchar, GETDATE(), 126)

e.g.

2011-09-23T12:18:24.837

(yyyy-mm-ddThh:mi:ss.mmm (no spaces), ISO8601 without timezone)

Ref: CAST and CONVERT

There is no way to specify a custom format with CONVERT(). The other option is to perform string manipulation to create in the format you desire.

海螺姑娘 2024-12-13 03:06:48

试试这个:

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

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

哈。

Try this:

select CONVERT(varchar, GETDATE(), 120)
e.g.

2011-09-23 12:18:24
(yyyy-mm-dd hh:mi:ss (24h) ,ODBC canonical).

Hth.

稚然 2024-12-13 03:06:48

另一种选择!

SELECT CONVERT(nvarchar(8), GETDATE(),112) + 
   CONVERT(nvarchar(2),DATEPART(HH,GETDATE())) + 
   CONVERT(nvarchar(2),DATEPART(MI,GETDATE())) + 
   CONVERT(nvarchar(2),DATEPART(SS,GETDATE()));

Another option!

SELECT CONVERT(nvarchar(8), GETDATE(),112) + 
   CONVERT(nvarchar(2),DATEPART(HH,GETDATE())) + 
   CONVERT(nvarchar(2),DATEPART(MI,GETDATE())) + 
   CONVERT(nvarchar(2),DATEPART(SS,GETDATE()));
救赎№ 2024-12-13 03:06:48

以这种方式转换日期时间需要多次调用才能进行转换。最好的用途是在返回 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) 非常接近您想要的。

converting datetime that way requires more than one call to convert. Best use for this is in a function that returns a varchar.

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

Put them together like so inside the function

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

20131220 13:15:50

As Thinhbk posted you can use select CONVERT(varchar,getdate(),20) or select CONVERT(varchar,getdate(),120) to get quite close to what you want.

酷到爆炸 2024-12-13 03:06:48
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
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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文