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

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

问题描述:

我想将getdate()转换为SQL Server中的这种格式(10-Feb-15 18:25:57)。如何在SQL Server中获取日期格式(dd-MMM-yy HH:mm:ss)?

select getdate() 

让我

2015-02-10 18:25:37.567 

,但我想在10-Feb-15 18:25:37格式的日期。

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

我是SQL Server的新手。

感谢....

+0

可能重复[在日期省略毫秒(HTTP://计算器。com/questions/2246655 /省略毫秒) – 2015-02-10 13:01:16

+4

将数据保存在整个数据库的'DateTime'变量(不包含*格式)并且只将其转换为数据一个字符串(并应用格式化)向用户呈现数据时 - 通常,有一个更适合的层(报告工具或其他语言),这些格式化问题很容易处理,而不是尝试在T-SQL中执行数据库。 – 2015-02-10 13:13:28

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

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

如果你真的需要那个exac t格式,我想你必须使用datepart/datename。

我们可以日期转换为多种格式
选择Convert(NVARCHAR,GETDATE(),106)
这可能会帮助你 Click

你的情况有一个适合你的需要没有固定的日期时间格式。您将不得不分别格式化日期和时间,并用短划线替换空格。

下面将在你请求的格式生成日期时间:

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

结果:

10-Feb-15 14:08:54 
格式化日期时间

MSDN文档:CAST and CONVERT (Transact-SQL)

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 
    STUFF(STUFF(CONVERT(char(20), getdate(), 113),3,1, '-'),7,1,'-')