如何在sql server中连接年月份名称日

时间:2017-06-27 08:42:48

标签: sql-server

我们根据月号获取月份名称

2017-January-26(year-MonthName-Day)

如何在SQL Server中获取public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); Log.d("Focus debug", "Focus changed !"); if(!hasFocus) { Log.d("Focus debug", "Lost focus !"); Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); sendBroadcast(closeDialog); } } 之类的日期格式?

7 个答案:

答案 0 :(得分:1)

如果您已有日期(@d):

declare @d date = GETDATE();
select cast(YEAR(@d) as varchar(4)) + '-' + DATENAME(mm, @d) + '-' + cast(DAY(@d) as varchar(2))

这会产生(在德国语言环境中)

2017-Juni-27

如果您有一天,每月和每年的单个值,请相应地插入它们。

答案 1 :(得分:0)

这会将月份作为整个名称

select replace(convert(varchar(30), GETDATE(), 106), ' ', '-')   --you may replace getdate() with your date column 

你可以试试这个:::

select cast(year(getdate() )as varchar(5)) + '-' + cast(datename(MONTH,GETDATE()) as varchar(12)) + '-' + cast(DAY(GETDATE()) as varchar(2))

答案 2 :(得分:0)

这就是你要找的东西:

SELECT CONVERT(NVARCHAR(10), GETDATE(),126)

输出:

  

2017年6月27日

答案 3 :(得分:0)

使用以下功能,借助此功能,您可以以任何格式格式化日期。

CREATE Function [dbo].[fn_FormatDate]
(
 @Date   DateTime       --Date value to be formatted
 ,@Format VarChar(40)   --Format to apply
)
Returns VarChar(40)
As
Begin

     -- Insert Day:
     Set @Format = Replace (@Format , 'DDDD' , DateName(Weekday , @Date)) 
     Set @Format = Replace (@Format , 'DDD' , Convert(Char(3),DateName(Weekday , @Date)))
     Set @Format = Replace (@Format , 'DD' , Right(Convert(Char(6) , @Date,12) , 2))
     Set @Format = Replace (@Format , 'D1' , Convert(VarChar(2) , Convert(Integer , Right(Convert(Char(6) , @Date , 12) , 2))))

     -- Insert Month:
     Set @Format = Replace (@Format , 'MMMM', DateName(Month , @Date))
     Set @Format = Replace (@Format , 'MMM', Convert(Char(3) , DateName(Month , @Date)))
     Set @Format = Replace (@Format , 'MM',Right(Convert(Char(4) , @Date,12),2))
     Set @Format = Replace (@Format , 'M1',Convert(VarChar(2) , Convert(Integer , Right(Convert(Char(4) , @Date,12),2))))

     -- Insert the Year:
     Set @Format = Replace (@Format,'YYYY' , Convert(Char(4) , @Date , 112))
     Set @Format = Replace (@Format,'YY' , Convert(Char(2) , @Date , 12))

     -- Insert the Time
     Set @Format = Replace (@Format,'HH' , Convert(Char(5) , @Date , 114))
     Set @Format = Replace (@Format,'hh' , Convert(Char(2) , @Date , 14))

     -- Insert the AM/PM:
     Set @Format = Replace (@Format,'AM/PM' , RIGHT(CONVERT(VARChar(20) , @Date),2))

     -- Return function value:
     Return @Format
End

如何使用上述功能:

SELECT [dbo].[fn_FormatDate](getdate(),'yyyy-mmm-dd')

答案 4 :(得分:0)

CREATE FUNCTION GetDateName (
@date Date
)
RETURNS VARCHAR(MAX)
AS
BEGIN

  DECLARE @result VARCHAR(MAX)

  SELECT @result = Concat(YEAR(@date),'-',CONVERT(CHAR(3), DATENAME(MONTH, GETDATE())),'-',DAY(@date))
 RETURN @result

END
GO

答案 5 :(得分:0)

如果您使用的是SQL Server 2012或更高版本,则可以使用:

SELECT FORMAT(GETDATE(), 'yyyy-MMMM-dd' ,'en-US')

答案 6 :(得分:0)

尝试使用以下查询生成所需的输出。

DECLARE @DATE DATETIME = Getdate() 
DECLARE @MOD_DATE VARCHAR(50) 
DECLARE @YEAR VARCHAR(10) 
DECLARE @MONTH VARCHAR(10) 
DECLARE @DAY VARCHAR(10) 

SET @YEAR = Datename(year, @DATE) 
SET @MONTH = Datename(month, @DATE) 
SET @DAY = Datename(day, @DATE) 
SET @MOD_DATE= @YEAR + '-' + LEFT(@MONTH, 3) + '-' + @DAY 

PRINT @MOD_DATE 

输出:

2017-Jun-27