从日期定义SQL Server表名



我的SQL Server数据库的表以加载日期命名,格式如下

## FROM [GL_202206].[dbo].[GL_ACCOUNT_20220602].

我做了一个查询,可以生成一个类似于表名的字符串,如下所示:

SELECT 
CONCAT('[GL_', YEAR(GETDATE()), FORMAT (GETDATE(), 'MM'),
'].[dbo].[GL_ACCOUNT_', CONVERT(CHAR(8), GETDATE(), 112), ']')

如何在查询中获得字符串来制作表名?

SELECT 
ACCOUNTID, ACCOUNTNAME 
FROM 
[GL_202206].[dbo].[GL_ACCOUNT_20220602]

你的SQL是正确的,你只需要执行它。

declare @sql nvarchar(max) = null;
SELECT @sql = 'select ACCOUNTID, ACCOUNTNAME from ' +
CONCAT('[GL_', YEAR(GETDATE()), FORMAT (GETDATE(), 'MM'),
'].[dbo].[GL_ACCOUNT_', CONVERT(CHAR(8), GETDATE(), 112), ']');
exec (@sql)

最新更新