仅获取SQL Server中的月份和年份

时间:2019-03-02 14:08:00

标签: sql sql-server sql-server-2008

我只想从SQL Server的日期列中获取月份和年份。

示例:如果今天的日期是02/03/2019,那么我想要0319

注意:我希望结果以相同的顺序显示(2位数字的月份和2位数字的年份)。不应从月份中删除零。

4 个答案:

答案 0 :(得分:1)

您可以使用以下方法创建号码:

select month(datecol) * 100 + (year(datecol) % 100)

使用零表示需要更多工作:

select right('0' + convert(varchar(255), month(datecol) * 100 + (year(datecol) % 100)), 4)

或者,您可以使用format()

select format(datecol, 'MMyy')

答案 1 :(得分:1)

作为一种替代方法,您可以寻求:

RIGHT(REPLACE(CONVERT(varchar(8),DateColumn,3),'/',''),4)

答案 2 :(得分:0)

您可以尝试

substring(convert(nvarchar,@date,12),3,2) + left(convert(nvarchar,@date,12),2)

您可以创建用户定义的函数,然后将其应用于列

create function udf_Getmonthyear(@date as date)
RETURNS nchar(4)
BEGIN
    DECLARE @d_format nchar(6) = (select convert(nvarchar,@date,12))

    RETURN (select SUBSTRING(@d_format,3,2) + left(@d_format,2)) 
end
go

答案 3 :(得分:0)

在TSQL中使用函数DATEPART获取DateTime值的任何部分。例如:

DATEPART(yy,datecol)DateTime列提供了4位数字的年份部分(例如:datecol),使用%(模)运算符可以得到2位数字的年份{ {1}}。 DATEPART(yy,datecol)%100为您提供DATEPART(mm,datecol)字段的月份部分。

datecol

致谢