最亲密的天才StackOverflow朋友,
我需要创建一个视图,它总是在WHERE子句中为“Period”提供数据,以varchar(4)格式查找上一个月和年( MMYY ) 。
示例:今天是2015年3月3日,所以我需要的是期间 0215 。
SELECT stuff
FROM table
WHERE period = '0215'
如何在视图中自动生成'0215',以便我总能看到上个月的数据?
非常感谢任何帮助。
答案 0 :(得分:2)
试试这个表达式:
SELECT STUFF(CONVERT(VARCHAR(10), DATEADD(MONTH, -1, GETDATE()), 101), 3, 6, '')
答案 1 :(得分:1)
使用此:
;WITH PrevMonth AS (
SELECT LEFT(REPLACE(CONVERT(date, DATEADD(m, -1, getdate())), '-', ''), 6) AS YYYYMM
)
SELECT SUBSTRING(YYYYMM, 5, 2) + SUBSTRING(YYYYMM, 3, 2) AS MMYY
FROM PrevMonth
CTE
以YYYYMM
格式生成上个月的日期。使用SUBSTRING
重新排列格式以生成所需的输出。
如果您使用的是SQL Server 2012+,使用FORMAT
获得所需结果要容易得多:
SELECT FORMAT(DATEADD(m, -1, getdate()), 'MMyy') AS MMYY
答案 2 :(得分:0)
你可以使用
获得你想要的东西TO_CHAR(add_months(sysdate,-1),'MMYY')
当然,如果需要,您可以使用时间戳替换sysdate。