微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql查询:选择timeMade超过hours需要的所有用户

如何解决sql查询:选择timeMade超过hours需要的所有用户

|| 好吧,我有一张桌子
create table usersnew
(
user1 varchar (50) primary key,names varchar(50),lastname varchar(50),hoursneeded float)

create table hoursusers
(
user1 varchar(50),timeMade varchar(50),foreign key (user1) references usersnew(user1)
)
hoursneede是用户完成服务需要花费的时间。.“社会服务” 可能是400小时 现在timeMade是他的时间。 这是varchar,因为我将一些内容保存为\ 30:30:00 30小时 \ '23:30:00 \'是23小时30分钟 所以..我将它与时间跨度和其他东西转换为C#。 现在我需要查询 我向所有用户选择timeMade超过Hoursneede ... 如果他需要赚400,而他已经赚了'400:00:00 \',或者我要选择他。 但并非所有用户都需要同时进行。 另一个用户需要输入450或300我不知道...但是我想选择给用户 比他所需要的时间还多。.我该怎么办?我可以使用sql进行此查询, C#with loops-for,这样做...有什么主意吗?     

解决方法

        使用分钟代替,具有数字数据类型 您可以轻松地将分钟数转换为小时数(除以60) 数字数据更易于查询     ,           某个想法? 使用代表需要存储的数据类型的类型来存储数据。然后您的问题一下子解决了! 在SQL Server 2008中使用TIME数据类型;失败的: 您可以尝试将数据存储为“ 1”(在另一张表中进行此操作);尽管如果您开始需要每秒粒度,则会变得很丑陋: 如果需要每秒的粒度,请尝试将秒数存储在
INT
列中。 简介:您要在数据库中存储小时数,所以要这样做!不要仅仅因为您的应用程序经常传递字符串而存储字符串。您应该在应用程序的DAL中处理该问题。     ,        您不应该像varchar那样存储以获得更好的输出。让您根据自己的逻辑以某种数字或日期格式存储它们。  对于前。您可以使用datetime字段进行比较。您也可以为此编写一些存储过程,但决不建议使用.NET代码中的循环或条件进行检索。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。