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

时间:2015-02-10 12:58:14

标签: sql sql-server sql-server-2008

我想在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新手。

谢谢....

6 个答案:

答案 0 :(得分:4)

不完全是这样,但最接近的是:

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。

答案 1 :(得分:4)

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

SELECT 
  STUFF(STUFF(CONVERT(char(20), getdate(), 113),3,1, '-'),7,1,'-')

答案 2 :(得分:1)

SELECT REPLACE(CONVERT(varchar(11),SYSDATETIME(),13),' ','-')+' '+ CONVERT(VARCHAR(8), SYSDATETIME(), 8)

答案 3 :(得分:1)

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

在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使用一些预定义格式,或者通过连接日期部分值来构造最终字符串。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

以下内容将按您要求的格式生成日期时间:

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

结果:

10-Feb-15 14:08:54

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