如何解决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 举报,一经查实,本站将立刻删除。