自定义sql日期时间格式如何

本文关键字:格式 时间 sql 日期 自定义 | 更新日期: 2023-09-27 18:12:06

我需要在类似2011 Oct 24的sql server上将date time转换为nvarchar但我不能转换成这个。有人能帮忙吗?

自定义sql日期时间格式如何

没有完全匹配的格式。您可以使用substring手动组装格式:

select  substring(convert(varchar(20),getdate(),106),8,4) + ' ' +
        substring(convert(varchar(20),getdate(),106),4,3) + ' ' +
        substring(convert(varchar(20),getdate(),106),1,3)

注意:在SQL中进行格式化比在C#、Java或Ruby中进行客户端格式化要困难得多。

对于所需的确切格式,您需要分别获得日期的所有部分(日、月和年(,如:

SELECT DATENAME(YYYY,GETDATE()) + ' ' + CAST(DATENAME(MM,GETDATE()) AS VARCHAR(3)) + ' ' + DATENAME(DD,GETDATE())   

您还可以将功能转换为其他格式,如:

SELECT CONVERT(VARCHAR(20),GETDATE(),106)
SELECT CONVERT(nvarchar(10), getdate(), 102)

您可以在此处找到所有转换代码:http://msdn.microsoft.com/en-us/library/ms187928.aspx

WITH d (d) AS (SELECT GETDATE())
SELECT DATENAME(YEAR, d) + ' ' + CONVERT(NVARCHAR(6), d, 109)
FROM d

输出:

-------------------------------------2011年10月24日