首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server在表列表中查找Max DateTime

问Server在表列表中查找Max DateTime
EN

Stack Overflow用户
提问于 2016-06-02 15:51:27
回答 1查看 217关注 0票数 0

我试图在我的sysobjects表中找到最大日期,这些表的数据类型为日期时间、日期和时间。

我使用以下查询查找表列表:

代码语言:javascript
复制
select so.name table_name ,sc.name column_name ,st.name data_type
from sysobjects so
inner join syscolumns sc on (so.id = sc.id)
inner join systypes st on (st.type = sc.type)
where so.type = 'U'
and st.name IN ('DATETIME', 'DATE', 'TIME')

是否可以修改查询以便为每个记录找到最大日期?我可以声明一个变量来接受列表中的列名并将max()函数应用到它们吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-02 16:13:25

您可以使用原始查询和动态SQL实现这一点:

代码语言:javascript
复制
DECLARE @sql NVARCHAR(MAX);

SELECT  @sql = STUFF((
    SELECT    'UNION ALL SELECT ''' + so.name + '.' + sc.name + ''', MAX([' + sc.name + ']) FROM [' + so.name + '] '
    FROM      sys.sysobjects so
    INNER JOIN sys.syscolumns sc ON (so.id = sc.id)
    INNER JOIN sys.systypes st ON (st.xtype = sc.xtype)
    WHERE     so.type = 'U' AND
            st.name IN ('DATETIME', 'DATE', 'TIME')
    FOR
    XML PATH('')
), 1, 9, '');

EXEC sp_executesql @sql;

阅读以下内容可能会使您受益:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37596625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档