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

向下

SQL查询 找到类似的分支


Proton   (2002-05-25 23:59) [0]

如何使用“生日”字段(出生日期)从人的腰围中选择60岁以上的人。



Proton   (2002-05-25 23:59) [1]




kaif   (2002-05-26 02:28) [2]

仅SQL方言3(IB6.0)

从table1中选择*
哪里
现在> =
投(
投(
提取(生日那天的年份)+ 60作为字符(4)
)
||“-” ||
摘录(生日那天的月份)
||“-” ||
摘录(生日那天)
截至DATE)



Proton   (2002-05-26 13:56) [3]

2kaif-首先-谢谢...
您的便秘可以简化-
事实是,如果您从一个日期减去另一个
那么结果将是天数

SELECT * WHERE(NOW-BIRTHDAY)>(365 * 60)
那只是 现在他发誓 虽然方言xnumx
聪明的人在这里告诉我,现在似乎是用引号引起来的,或者类似的东西-您对此一无所知。
是的,您可以在year年吐痰-否则,​​它将大大加剧我们的问题。



Макз   (2002-05-26 15:03) [4]

current_date而不是NOW现在看起来会更好



Proton   (2002-05-26 17:10) [5]


>当前日期

已经找到了谢谢

但是在SQL中,有什么样的舍入函数?
我需要类似的东西
SELECT * WHERE(NOW-BIRTHDAY)> TRUNC(365.25 * 60)
用来切除或舍入小数部分的东西
unc或圆




Proton   (2002-05-26 17:12) [6]

我用与delphi类比的方式插入了TRUNC-不要误解。



kaif   (2002-05-27 02:17) [7]

我选择的实质是
1。 从生日中提取年份(从生日中提取(年份))
2。 收集今年的生日类型YYYY-MM-DD
3。 比较一下NOW,看看今年是否庆祝。
显然,NOW应该用双引号“ NOW”(我不记得了)。
但是,我觉得2月29年的人生日快乐可能会出错,因为服务器可能根本不接受2002-02-29日期,因为没有日期。
但是,我不知道如何计算这些人的年龄。
-------
如果您对简单的解决方案感到满意,那么您可以:
(现在-生日)>(365.25 * 60)
为什么要四舍五入? 我认为它将起作用。



Proton   (2002-05-27 10:06) [8]


>我的选择的实质是
> 1。 从生日中提取年份(从生日中提取(年份))
> 2。 收集今年的生日类型YYYY-MM-DD
> 3。 比较一下他今年是否庆祝
>现在。
并非所有事情都像您冲洗一样简单。
因此,我仍然有很多条件要遵守这个要求。 该请求已经太大。 而且它仍然需要优化:)
>显然,现在应该在引号中加上“现在”(我不记得了)。
而不是现在-使用DATE_CURRENT
>但是,我觉得一天的人可能有一个错误
>出生29 2月,也许是日期2002-02-29
>服务器根本不会接受,说没有这样的日期。
>但是,我什至不知道该如何计算年龄
>人。
> -------
>如果您对简单的解决方案感到满意,那么您可以:
>(现在-生日)>(365.25 * 60)
至于四舍五入,然后看-如果不四舍五入并切除小数部分,则每四年将添加1。 当然,这仍然不准确,但是。
>为什么要四舍五入? 我认为它将起作用。
您是对的,即使您没有将其四舍五入,它仍然认为还可以




DmitryK   (2002-05-27 12:34) [9]

1。 IB我不知道,但是在MSSQL中,有一个特殊的日期求和功能,其中有必要指出倒数的单位(例如,以年为单位)和增加的值,也许有这样的东西。

2。 据我了解,在IB中获取当前日期的功能是 今晚 (但我可能是错的)

3。 表达 (现在-生日)>(365.25 * 60) 更好地建立那种方式 生日<(现在-365.25 * 60) -这将允许您使用索引来加快搜索速度

4。 如果在IB中仍然无法轻松计算日期,则始终可以通过转换为其他类型来解决,但是在这种情况下,我建议使用跟踪。 方案:
-声明日期类型的变量
-计算值并将其输入此变量
-然后您才能取样

这也将加快处理速度。





kaif   (2002-05-27 13:30) [10]

DmitryK是正确的。
BIRTHDAY <(NOW-365.25 * 60)将允许使用索引。
您通常可以在BIRTHDAY <:BIRTHDAY做
并传送已计算的(在客户端上)常量BIRTHDAY
作为请求中的参数(当然,除非您需要确切地找到一个日期)。 这样,一切都会变得准确而快速。



Proton   (2002-06-09 16:54) [11]


> DmitryK是正确的。
> BIRTHDAY <(现在-365.25 * 60)将允许使用索引。

我知道我是对的。

>您通常可以在BIRTHDAY <:BIRTHDAY做
>并传输已计算的(在客户端上)常量
>生日
>作为请求中的参数(当然,除非需要
>找出一个日期)。 然后一切都会准确,
>快速。

只有一件事! 主题行中的IB表示InterBase-我依次是客户端服务器,而这又是从服务器获取日期的日期-这种安排不适合我-我无法直接访问服务器。 我认为,即使是管理员,也没有养猫的猫。 他可能在线程安全的地方。
:)




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

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

楼上





内存:0.59 MB
时间:0.024 c
4-1244年
Windeus
2002-05-03 08:45
2002.07.01
实时插入/覆盖


14-1185年
delphixnumx
2002-05-30 22:32
2002.07.01
在线游戏


1-1034年
tovSuhov
2002-06-18 12:59
2002.07.01
TListView - 多色线 - 如何?


1-943年
ZG
2002-06-19 16:10
2002.07.01
Zdarovo !!! 不要告诉我如何在Turbo Pascal中使用p方法


3-923年
Olegus
2002-06-08 10:20
2002.07.01
Delphi和InterBase





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