我只想从SQL Server的日期列中获取月份和年份。
示例:如果今天的日期是02/03/2019
,那么我想要0319
。
注意:我希望结果以相同的顺序显示(2位数字的月份和2位数字的年份)。不应从月份中删除零。
答案 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
致谢