lov*_*iji 45 sql t-sql sql-server
我想选择值= 201301
select getdate(), cast(datepart(year, getdate()) as varchar(4))+cast(datepart(MONTH, getdate()) as varchar(2))
Run Code Online (Sandbox Code Playgroud)
它返回 20131
这样做的正常方法是什么?
Ham*_*yan 88
SELECT CONVERT(nvarchar(6), GETDATE(), 112)
Run Code Online (Sandbox Code Playgroud)
Hog*_*gan 50
SELECT LEFT(CONVERT(varchar, GetDate(),112),6)
Run Code Online (Sandbox Code Playgroud)
D-S*_*hih 19
我知道这是一个古老的话题,但如果您的SQL server
版本高于2012年.
还有另一个简单的选项可以选择,FORMAT功能.
SELECT FORMAT(GetDate(),'yyyyMM')
Run Code Online (Sandbox Code Playgroud)
一种更有效的方法是使用整数数学而不是字符串/varchars,这将产生 int 类型而不是字符串类型:
SELECT YYYYMM = (YEAR(GETDATE()) * 100) + MONTH(GETDATE())
Run Code Online (Sandbox Code Playgroud)
在年份右侧添加两个零,然后将月份添加到添加的两个零。