在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服务器,你应该访问:
- 自定义date和时间格式
- 标准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)
第三个参数是格式,范围从100
到114
,任何一个都应该为你工作。
如果你需要日dd/mmm/yyyy
日,请使用以下命令:
replace(convert(char(11),getdate(),113),' ','-')
用你的列名replacegetdate()
。 这对我有效。
尝试这个 :
select replace ( convert(varchar,getdate(),106),' ','/')
任何人尝试手动inputdate到sql服务器“datetypes”variables使用这种格式,而input:
'yyyy-mm-dd'