主页
Top.Mail.Ru Yandeks.Metrika
论坛:“基地”;
当前存档:2002.04.25;
下载:[xml.tar.bz2];

向下

SQL查询 找到类似的分支


vitnt2000   (2002-04-03 06:42) [0]

我有一个数据库,其中包含多年来参数的分钟值:
时间意义
请告诉我如何构建查询以在一段时间内每小时(每天)获取一次参数值? 也就是说,对于一小时(天)的倍数的时间值。



arhelon   (2002-04-03 07:59) [1]

什么是基地???
试试这个
假设t数据时间az值
选择
(z / count(*))STE平均值
group by to_char(t,“dd / mm / yyyy hh24”)
奥拉克的私人骑行
如果没有,那么尝试使用强制转换




arhelon   (2002-04-03 08:01) [2]

对不起,我早上速度很慢。在MSSQL中看到类似的to_date。
在我这样的功能已经与电话(和分钟,小时,日和月)滚动,所以尝试



sniknik   (2002-04-03 10:40) [3]

对于MSSQL,从日期/时间中选择小时并在查询中进行比较

DATEPART(日期部分,日期)
datepart可能的值

25美分硬币

DAYOFYEAR


平日
小时
分钟
第二
毫秒

或.... WHERE CONVERT(char(20),datetime,14)LIKE“02%”
(对于2小时)14格式第一小时返回hh:mi:ss:mmm(24h)



SergSuper   (2002-04-03 10:58) [4]

在mssql所以只是不转换日期
你必须要为基数取一些日期并从中计算小时数(datediff(hh,base_date,t))或修剪日期的字符串表示
select substring(convert(varchar(22),t,120),1,13)

好吧,平均值应该被认为是sum(z)/ count(*),甚至更好的是avg(z),它应该在Orakle中



sniknik   (2002-04-03 11:20) [5]

怎么这么容易不转换? 非常简单,特别检查了保证(否则突然内存失败,第二个例子对我来说似乎更方便)

从cashsail中选择*,CONVERT(char(20),[date],14)
其中CONVERT(char(20),[date],14)喜欢“00%”
正在工作。
(在这种情况下,它给出了所有记录,日期字段是从dbf和零转移之前的日期)
也适用于[时间]字段(仅此处需要设置小时值,它是,并且日期为零)



SergSuper   (2002-04-03 12:43) [6]

2 sniknik
仔细阅读我写的内容。
不幸的是,没有函数可以通过MSSQL中的掩码将日期转换为字符串,因此您必须转换为指定格式的字符串,然后将其剪切。 在奥拉克尔,它变得更容易。

如果您按照建议编写CONVERT(char(20),[date],14),如“00%”,那么具有分钟数的数据将不会包含在样本中,在这种情况下它不适合。




sniknik   (2002-04-03 13:38) [7]

也许我误解了国家之间的问题,我们正在讨论不同的事情,但我知道一个人确实需要一个小时的价值,即 从一点到两点或从两点到三点,无论白天都是端到端。 为此,我的榜样很棒。
并且指定小时的所有数据都有分钟(已选中)。 请参阅BOL格式 - 14 - hh:mi:ss:mmm(24h)(也许这种格式不在7 SQL中?你有七个,否则为什么要剪切字符串)
但在这种情况下,也可以摆脱这种情况.8 108的形式 - hh:mm:ss应该更早,也应该是第一个小时。
或者你最喜欢的但不是剪切并为LIKE“____:__:__:02%”输入一行(按格式),在我看来它比切割更容易。



sniknik   (2002-04-03 13:45) [8]

PS可能误解的根源 - 在MSSQL中用于LIKE,字符“_”表示任何字符,“%”表示任何行。



SergSuper   (2002-04-03 14:54) [9]

也许这是在误解

声明@t表(t datetime,z float)
insert @t选择“20010101 10:00”,1 union
选择“20010101 10:02”,2 union
选择“20010101 10:02”,3 union
选择“20010101 11:00”,4

从@t中选择子串(转换(varchar(22),t,120),1,13),avg(z)
group by substring(convert(varchar(22),t,120),1,13)

写下你的选择



sniknik   (2002-04-03 15:46) [10]

然后和一群人一起
(改变了你的榜样)
声明@t表(t datetime,z float)
insert @t选择“20010101 10:00”,1 union
选择“20010101 10:02”,2 union
选择“20010101 10:05”,3 union
选择“20010101 11:00”,4

从@t中选择DATEPART(小时,t),avg(z)
DATEPART小组(小时,小时)

我的意思是简单的采样然后它更方便所以(在我看来)

从@t中选择*
其中CONVERT(char(20),t,14)喜欢“10%”
(注意分钟不同并显示:O)



SergSuper   (2002-04-03 16:53) [11]


从@t中选择DATEPART(小时,t),avg(z)
DATEPART小组(小时,小时)

prelesno
如果有另一天的数据?

我的意思是简单的采样然后它更方便所以(在我看来)

从@t中选择*
其中CONVERT(char(20),t,14)喜欢“10%”

where用于过滤,这里不需要。

(注意分钟不同并显示:O)

输出,但只有四个条目中的三个。

一般来说,在你写作之前,你需要明白,这将被认为你是权威的人阅读,并希望你已经为他写了一些可理解的东西,相反,你只会混淆他。

如果有更多问题 - 通过邮件,我认为vitnt2000收到了足够的信息

问候谢尔盖



Страницы: 1 整个分支

论坛:“基地”;
当前存档:2002.04.25;
下载:[xml.tar.bz2];

楼上





内存:0.59 MB
时间:0.023 c
7-81091
CAHEK
2001-10-19 20:52
2002.04.25
在某个用户下登录Win2k


1-80845
konusov
2002-04-13 00:37
2002.04.25
如何更改文件创建日期?


14-81047
undersun
2002-03-13 17:21
2002.04.25
如何选择需要连接的设备。 通过TCP / IP


1-80965
Vovochka
2002-04-12 11:04
2002.04.25
TCustomForm.onDeactivate


3-80757
VAleksey
2002-04-03 10:16
2002.04.25
删除错误





南非荷兰语 阿尔巴尼亚人 阿拉伯语 亚美尼亚 阿塞拜疆 巴斯克 白俄罗斯 保加利亚语 加泰罗尼亚 简体中文 中国(繁体) 克罗地亚 捷克 丹麦语 荷兰人 英语 爱沙尼亚语 菲律宾人 芬兰 法语
加利亚西语 格鲁吉亚语 德语 希腊语 海地克里奥尔语 希伯来语 印地语 匈牙利 北日耳曼语 印度尼西亚人 爱尔兰语 意大利语 日本 韩语 拉脱维亚 立陶宛 马其顿 马来语 马耳他语 挪威语
波斯语 波兰语 葡萄牙语 罗马尼亚 俄语 塞尔维亚 斯洛伐克 斯洛文尼亚 西班牙语 斯瓦希里 瑞典语 泰国人 土耳其 乌克兰 乌尔都语 越南人 威尔士语 意第绪语 孟加拉 波斯尼亚
宿务 世界语 古吉拉特语 豪萨语 苗族 伊博 爪哇 卡纳达语 高棉 老挝 拉丁语 毛利 马拉 蒙古人 尼泊尔 旁遮普 索马里 淡米尔文 泰卢固语 约鲁巴语
祖鲁
英文 Французский Немецкий Итальянский Португальский 俄文 Испанский