我有一个查询SQL
,我必须以以下格式获取日期dd/mm/yy
示例:25/jun/2013
。
我convert
该SQL server
怎么办?
我有一个查询SQL
,我必须以以下格式获取日期dd/mm/yy
示例:25/jun/2013
。
我convert
该SQL server
怎么办?
我不确定您想要的格式是否完全匹配。但你可以接近convert()
和风格106
。然后,替换空格:
SELECT replace(convert(NVARCHAR, getdate(), 106), ' ', '/')
SQL server 2008已经有多种答案和格式类型 。但是这种方法有些模棱两可,您很难记住特定日期格式的数字。这就是为什么在 SQL Server 的下一个版本中有更好的选择。
FORMAT ( value, format [, culture ] )
使用文化选项,您可以根据观众指定日期。
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 的解决方案,我们可以使用@Martin Smith 已经提到的以下格式:
FORMAT(GETDATE(), 'dd/MMM/yyyy', 'en-us')
一些示例日期格式:
如果你想要更多的 SQL server 日期格式,你应该访问:
接受的答案已经在 2008 年提供了使用内置格式化方法的最佳解决方案。
应该注意的是,返回的结果取决于登录的语言。
SET language Russian
SELECT replace(CONVERT(NVARCHAR, getdate(), 106), ' ', '/')
退货
06/апр/2015
在撰写本文时。
对于在较新版本的 SQL Server 上遇到此问题的人来说,一种避免此问题的方法 - 并且需要REPLACE
是
FORMAT(GETDATE(),'dd/MMM/yyyy', 'en-us')
在 2005+ 上,可以编写一个接受 DateTime、Formatting Pattern 和 Culture 的 CLR UDF 来模拟相同的内容。
尝试使用以下查询。
SELECT REPLACE(CONVERT(VARCHAR(11),GETDATE(),6), ' ','/');
结果: 2013 年 6 月 20 日
SELECT REPLACE(CONVERT(VARCHAR(11),GETDATE(),106), ' ','/');
结果: 2013 年 6 月 20 日
试试这个
select convert(varchar,getdate(),100)
第三个参数是格式,范围是从100
到114
,任何一个都应该适合你。
如果您需要dd/mmm/yyyy
使用日期:
replace(convert(char(11),getdate(),113),' ','-')
替换getdate()
为您的列名。这对我有用。
您可以使用此查询-
SELECT FORMAT (getdate(), 'dd/MMM/yy') as date
希望,这个查询可以帮助你。
谢谢!!
试试这个 :
select replace ( convert(varchar,getdate(),106),' ','/')
任何尝试手动将日期输入到 sql server 'date type' 变量的人在输入时都使用这种格式:
'yyyy-mm-dd'
转换为日期后只需格式化(在 SQL Server v.2017 中测试)
dd/mon/yyyy
Select Format(cast('25/jun/2013' as date),'dd/MMM/yyyy')
dd/mm/yyyy
Select Format(cast('25/jun/2013' as date),'dd/MM/yyyy')
dd/Month/yyyy
Select Format(cast('25/jun/2013' as date),'dd/MMMM/yyyy')
只需获取日期并转换
Declare @Date as Date =Getdate()
Select Format(@Date,'dd/MM/yyyy') as [dd/MM/yyyy] // output: 22/10/2020
Select Format(@Date,'dd-MM-yyyy') as [dd-MM-yyyy] // output: 22-10-2020
//string date
Select Format(cast('25/jun/2013' as date),'dd/MM/yyyy') as StringtoDate // output: 25/06/2013