繁体   English   中英

如何在SQL Server中获取日期格式(dd-MMM-yy HH:mm:ss)?

[英]How to get date format (dd-MMM-yy HH:mm:ss) in SQL Server?

我想在SQL Server中将getdate()转换为这种格式( 10-Feb-15 18:25:57 )。

select getdate()

抓住我

2015-02-10 18:25:37.567

但我希望日期在10-Feb-15 18:25:37格式。

如何将此日期格式转换为我所需的格式?

我是SQL Server的新手。

谢谢 ....

这不是那个,但最接近的是:

select convert(varchar, getdate(), 113)

10 Feb 2015 15:00:30:513

要没有毫秒,您可以缩短字符串:

select convert(varchar(20), getdate(), 113)

你可以在这里找到这些格式: https//msdn.microsoft.com/en-us/library/ms187928%28v=sql.100%29.aspx

如果你真的需要那种确切的格式,我认为你必须使用datepart / datename。

这将为您提供确切的格式:

SELECT 
  STUFF(STUFF(CONVERT(char(20), getdate(), 113),3,1, '-'),7,1,'-')
SELECT REPLACE(CONVERT(varchar(11),SYSDATETIME(),13),' ','-')+' '+ CONVERT(VARCHAR(8), SYSDATETIME(), 8)

日期类型没有任何格式,它们是二进制类型。 仅当您要将日期值转换为字符串时,格式才适用。

在SQL Server 2012+中,您可以使用FORMAT函数将日期格式化为.NET支持的任何标准格式字符串,或自定义格式字符串,例如:

DECLARE @d DATETIME = GETDATE();
SELECT FORMAT( @d, 'dd-MMM-yy HH:mm:ss', 'en-US' ) 
------------------
10-Feb-15 15:35:55

在以前版本的SQL Server中,您只能使用CONVERT使用一些预定义格式,或者通过连接日期部分值来构造最终字符串。

我们可以将日期转换为多种格式
SELECT转换(NVARCHAR,getdate(),106)
这可以帮助您点击

在您的情况下,没有适合您需要的常规日期时间格式。 您必须单独格式化日期和时间,并用短划线替换空格。

以下将以您请求的格式生成日期时间:

select replace(convert(varchar(9), getdate(), 6), ' ', '-')
       + ' ' + convert(varchar(8), getdate(), 8)

结果:

10-Feb-15 14:08:54

有关格式化日期时间的MSDN文档: CAST和CONVERT(Transact-SQL)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM