sybase中如何查询前一天的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sybase中如何查询前一天的数据相关的知识,希望对你有一定的参考价值。

表名:errorlog_201411,调用时间字段:calltime 类型datetime,如题求教如何查询前一天的数据

参考技术A   sybase中查询前一天的数据的方法:
  方法1:
  往前一天(或24小时):
StartTime between dateadd(dd,-1,getdate()) and dateadd(dd,0,getdate())
StartTime between dateadd(hh,-24,getdate()) and dateadd(hh,0,getdate())
  方法2:
  前一天24小时:
StartTime between convert(char,dateadd(dd,-1,getdate()),111) and dateadd(hh,23,convert(char,dateadd(dd,-1,getdate()),111))
参考技术B 前一天的参考值是哪天?
如果是昨天的话,
select * from errorlog_201411 where calltime>= dateadd(-1,dd,getdate() ) and calltime < getdate()
关键看参照时间。

如何查看 Sybase 中的列元数据?

【中文标题】如何查看 Sybase 中的列元数据?【英文标题】:How do I look at column metadata in Sybase? 【发布时间】:2010-10-17 21:51:34 【问题描述】:

我有一个同事给我的列列表,但这些列位于数据库的不同表中。 Sybase 中是否有某种工具可以查询列所属的表?

(我已经尝试用谷歌搜索这种工具,但到目前为止没有运气)

【问题讨论】:

【参考方案1】:

syscolumns 保存列元数据。

select * from syscolumns where name = ;

syscolumns中的id列是该列的表的id,在sysobjects中;

select b.name as tablename, a.name as columnname
from syscolumns a join systables b on (a.id = b.id) 
where b.type='U' and b.name = 'foo';

获取名为“foo”的表的所有列。 type = 'U' 将其限制为用户表。

select b.name as tablename, a.name as columnname
from syscolumns a join systables b on (a.id = b.id) 
where b.type='U' and a.name = 'foo';

获取所有名为“foo”的列。

大多数当前版本的 ASE 将使用 sysbojects 而不是 systables

【讨论】:

谢谢!是的,这实际上有帮助。我还找到了一张 Sybase ASE 图表,可以将您的答案可视化:download.sybase.com/pdfdocs/asg1250e/poster.pdf 在更高版本的 Sybase 中需要使用 sysobjects 而不是 systables 我尝试从 syscolumns 中选择 *,但我的表格中没有一个列显示 如果您已经知道表名 sp_help tableName 将提供包括列名在内的表详细信息。【参考方案2】:

我必须做一些小改动才能让它工作:

select  b.name as tablename, 
        a.name as columnname
from    dbo.syscolumns a 
join    sysobjects     b on a.id = b.id
where   b.type='U' 
and     upper(a.name) like '%FOO%'      -- wildcard search for column name
and     b.name = 'bar'                  -- exclude tables
order by b.name

【讨论】:

我猜你的意思是 b.name != 'bar'【参考方案3】:

您可以在以下位置找到任何列的信息:

SELECT * 
  FROM sys.syscolumns

如果你想知道一列属于哪个表:

SELECT cname, tname 
  FROM sys.syscolumns
 WHERE tname IN ('col_1', 'col_2')

注意:我在 Sybase ASA 9 中对此进行了测试。

【讨论】:

以上是关于sybase中如何查询前一天的数据的主要内容,如果未能解决你的问题,请参考以下文章

sybase数据库怎么取出当前系统的星期

MySQL - 如何自动化视图查询,从最近的日期减去前一天的指标和日期戳最近的数据

Excel power 查询中的时间序列数据。我希望返回前一天的值

oracle 如何查询两个时间段里的每一天数据之和。(只有开始日期和结束日期,没有每一天日期)

JAva数据库问题:数据库的time字段是datetime类型,如何查询某一天的数据?

查询一个月最后一天的总用户数,数据库中没有保存最好一天的数据,就查询本月数据库已存有的最后一天的数据