在SQL中格式化日期

时间:2018-08-10 09:01:04

标签: sql sql-server

只有一个SQL查询,其日期格式为:

"2018-05-31"

需要将其转换为:

"May-18"

8 个答案:

答案 0 :(得分:3)

您可以使用Format功能

json()

答案 1 :(得分:2)

尝试一下:

SELECT LEFT(DATENAME(MONTH,GETDATE()),3) + '-' + RIGHT('00' + CAST(YEAR(GETDATE()) AS VARCHAR),2)

答案 2 :(得分:2)

SELECT FORMAT(GETDATE(),'MMM yy')

答案 3 :(得分:1)

您可以尝试以下方式

Declare @Date DateTime = '2018-05-31'
Select Format(@Date, N'MMM-yy')

http://sqlfiddle.com/#!18/433d6/194

答案 4 :(得分:0)

FORMAT可能非常慢。这看起来似乎不太直观,但是,如果您有大型数据集,则可能会更快:

SELECT STUFF(STUFF(CONVERT(varchar(11),GETDATE(),13),1,3,''),4,3,'-');

答案 5 :(得分:0)

这可以工作:

 declare @date date  = '2018-05-31'



  select *, FORMAT(DATEFROMPARTS(1900, right(YearMonthKey,2), 1), 'MMMM', 'en-US') +'-'+ substring(YearMonthKey,3,2)  as MonthYearName from (
 select LEFT(CAST(CONVERT(VARCHAR(8), @date, 112) AS INT),6) as YearMonthKey
)x

答案 6 :(得分:0)

我将使用convert()和样式代码6

select replace(substring(convert(varchar(12), datecol, 6), 4, 6), ' ', '-')

答案 7 :(得分:0)

您可以通过更改会话以重新设置nls_date_format来随时更改日期或时间戳列的显示方式。这将在SQL * Plus或PL / SQL中工作:

alter session set nls_date_format = 'MON-YY';