具有月份和年份的动态表名称 [英] Dynamic Table Name having Months and Year

查看:111
本文介绍了具有月份和年份的动态表名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

需要此结果



gft.dbo.GFT_Jan14

gft.dbo.GFT_Dec13

gft .dbo.GFT_Nov13

gft.dbo.GFT_Oct13

gft.dbo.GFT_Sep13



我的查询是下面



<前lang =sql> DECLARE @qry VARCHAR (max)
DECLARE @ tab1 VARCHAR (max)
DECLARE @ tab2 VARCHAR (max)
DECLARE < span class =code-sdkkeyword> @ tab3 VARCHAR (max)
DECLARE @ tab4 VARCHAR (max)
DECLARE @ tab5 VARCHAR (max)
DECLARE @stvar VARCHAR 50

SET @ stvar = ' gft.dbo.GFT _'
SET @ tab1 = @stvar + left (DATENAME(MONTH,GETDATE() - 1 ), 3 )+ right (年(getdate() - 1 ), 2
SET @ tab2 = @ stvar + (DATENAME(MONTH,GETDATE() - 35 ), 3 )+ 正确(年(getdate() - 35 ), 2
SET @ tab3 = @stvar + left (DATENAME(MONTH,GETDATE() - 70 ), 3 )+ 正确(年(getdate() - 70 ), 2
SET @ tab4 = @stvar + left (DATENAME(MONTH,GETDATE() - 100 ), 3 )+ 正确(年(getdate() - 100 ), 2
SET @ tab5 = @stvar + left (DATENAME(MONTH,GETDATE() - 130 ), 3 )+ right (YEAR(getdate) () - 130 ), 2





问题是在修复日期1,35,70,100,130

任何人都可以告诉我如何使用月而不是几天以便 < b> 2月31日和第30天可以自动调整?



这样的逻辑就可以用到以及如何使用??



set @ tableName ='gft.dbo.GFT_'+'月(getdate() - 1个月)

set @ tableName ='gft.dbo.GFT_'+'月(getdate() - 2个月)

set @ tableName ='gft.dbo.GFT_'+'月(getdate() - 三个月)

解决方案

点击链接了解如何获取月份的第一天和最后一天: SQL SERVER - 查询以查找当月的第一天和最后一天 [ ^ ]。



这里是另一个有用的链接: SQL Server有助于将日期和时间值转换为字符串文字和其他日期和时间格式的函数。 [ ^ ]





试试!


this result is needed

gft.dbo.GFT_Jan14
gft.dbo.GFT_Dec13
gft.dbo.GFT_Nov13
gft.dbo.GFT_Oct13
gft.dbo.GFT_Sep13

my query is as below

DECLARE @qry VARCHAR(max)
DECLARE @tab1 VARCHAR(max)
DECLARE @tab2 VARCHAR(max)
DECLARE @tab3 VARCHAR(max)
DECLARE @tab4 VARCHAR(max)
DECLARE @tab5 VARCHAR(max)
DECLARE @stvar VARCHAR(50)

SET @stvar = 'gft.dbo.GFT_'
SET @tab1 = @stvar + left(DATENAME(MONTH, GETDATE() - 1), 3) + right(YEAR(getdate() - 1), 2)
SET @tab2 = @stvar + left(DATENAME(MONTH, GETDATE() - 35), 3) + right(YEAR(getdate() - 35), 2)
SET @tab3 = @stvar + left(DATENAME(MONTH, GETDATE() - 70), 3) + right(YEAR(getdate() - 70), 2)
SET @tab4 = @stvar + left(DATENAME(MONTH, GETDATE() - 100), 3) + right(YEAR(getdate() - 100), 2)
SET @tab5 = @stvar + left(DATENAME(MONTH, GETDATE() - 130), 3) + right(YEAR(getdate() - 130), 2)



problem is while fixing days 1,35, 70, 100, 130
can anyone tell me how use months instead of days so that feburary and 31st 30th days can be auto adjusted??

somthing like this logic can be used and how??

set @tableName= 'gft.dbo.GFT_' + 'Month(getdate() - 1 month)
set @tableName= 'gft.dbo.GFT_' + 'Month(getdate() - 2 months)
set @tableName= 'gft.dbo.GFT_' + 'Month(getdate() - three months)

解决方案

Follow the link to find out how to get first and last day of month: SQL SERVER – Query to Find First and Last Day of Current Month[^].

Here you're another useful link: SQL Server Functions that helps to convert date and time values to and from string literals and other date and time formats.[^]


Try!


这篇关于具有月份和年份的动态表名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆