在SQL Server中将date格式转换为DD / MMM / YYYY格式

我在sql中有一个查询,我必须以dd/mmm/yy格式获取date

例如: 25/jun/2013

我怎样才能将其转换为SQL服务器?

我不确定您想要的格式是否完全匹配。 但是你可以使用convert()106风格。 然后,replace空格:

 SELECT replace(convert(NVARCHAR, getdate(), 106), ' ', '/') 

我们可以将date转换为多种格式

 SELECT convert(varchar, getdate(), 106) 

这返回dd mon yyyy

更多这里这可能会帮助你

SQL Server 2008已经有了多种答案和格式化types 。但是这种方法有点含糊不清,你很难记住关于特定date格式的数字。 这就是为什么在SQL服务器的下一个版本中有更好的select。

如果您使用SQL Server 2012或更高版本,则应使用Format()函数

 FORMAT ( value, format [, culture ] ) 

有了文化选项,您可以根据观众指定date。

 DECLARE @d DATETIME = '10/01/2011'; SELECT FORMAT ( @d, 'd', 'en-US' ) AS 'US English Result' ,FORMAT ( @d, 'd', 'en-gb' ) AS 'Great Britain English Result' ,FORMAT ( @d, 'd', 'de-de' ) AS 'German Result' ,FORMAT ( @d, 'd', 'zh-cn' ) AS 'Simplified Chinese (PRC) Result'; SELECT FORMAT ( @d, 'D', 'en-US' ) AS 'US English Result' ,FORMAT ( @d, 'D', 'en-gb' ) AS 'Great Britain English Result' ,FORMAT ( @d, 'D', 'de-de' ) AS 'German Result' ,FORMAT ( @d, 'D', 'zh-cn' ) AS 'Chinese (Simplified PRC) Result'; US English Result Great Britain English Result German Result Simplified Chinese (PRC) Result ---------------- ----------------------------- ------------- ------------------------------------- 10/1/2011 01/10/2011 01.10.2011 2011/10/1 US English Result Great Britain English Result German Result Chinese (Simplified PRC) Result ---------------------------- ----------------------------- ----------------------------- --------------------------------------- Saturday, October 01, 2011 01 October 2011 Samstag, 1. Oktober 2011 2011年10月1日 

对于OP的解决scheme,我们可以使用@Martin Smith已经提到的以下格式:

 FORMAT(GETDATE(), 'dd/MMM/yyyy', 'en-us') 

一些样本date格式:

在这里输入图像说明

如果你想要更多date格式的SQL服务器,你应该访问:

  1. 自定义date和时间格式
  2. 标准date和时间格式

尝试使用下面的查询。

 SELECT REPLACE(CONVERT(VARCHAR(11),GETDATE(),6), ' ','/'); 

结果: 20 / Jun / 13

 SELECT REPLACE(CONVERT(VARCHAR(11),GETDATE(),106), ' ','/'); 

结果: 2013年6月20日

已接受的答案已经在2008年使用内置的格式化方法提供了最好的解决scheme。

应该注意的是,返回的结果依赖于login语言。

 SET language Russian SELECT replace(CONVERT(NVARCHAR, getdate(), 106), ' ', '/') 

返回

 06/апр/2015 

在写作时。

对于在更新版本的SQL Server中遇到这个问题的人来说,避免这个问题的方法是 – 需要REPLACE

 FORMAT(GETDATE(),'dd/MMM/yyyy', 'en-us') 

在2005年+将有可能编写一个接受date时间,格式模式和文化的CLR UDF来模拟相同的。

尝试这个

 select convert(varchar,getdate(),100) 

第三个参数是格式,范围从100114 ,任何一个都应该为你工作。

如果你需要日dd/mmm/yyyy日,请使用以下命令:

 replace(convert(char(11),getdate(),113),' ','-') 

用你的列名replacegetdate() 。 这对我有效。

尝试这个 :

 select replace ( convert(varchar,getdate(),106),' ','/') 

任何人尝试手动inputdate到sql服务器“datetypes”variables使用这种格式,而input:

'yyyy-mm-dd'