我想在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新手。
谢谢....
答案 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)