C# sql查询:选择TimeMake超过所需小时的所有用户

C# sql查询:选择TimeMake超过所需小时的所有用户,c#,sql,sql-server,C#,Sql,Sql Server,我有一张桌子 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) ) hoursneed

我有一张桌子

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小时。。 时间就是他创造的时间。。 这是varchar,因为我将某些内容保存为30:00:00 30小时 “23:30:00”现在是23小时30分钟 所以我将其转换为C语言,使用timespan和其他东西。。 现在我需要问一个问题,在哪里 我选择所有用户的时间超过小时需要。。。 如果他需要赚400,而他已经赚了400:00:00或者更多,我会选择他。。 但并非所有用户都需要在相同的时间内完成。。 其他用户需要450或300我不知道。。。但我想选择给用户 比他所需要的时间还多。。我怎么做?我可以使用sql进行此查询并 带循环的c用于,用于执行。。。有什么想法吗

什么主意

使用表示需要存储的数据类型的类型存储数据。然后你的问题突然就解决了

; 否则: 您可以尝试将数据存储为浮点数,就像在另一个表中一样;尽管如果您开始需要每秒粒度,它会变得难看: 如果需要每秒粒度,请尝试将秒数存储在INT列中。 小结:您想在数据库中存储小时数,那么就这样做吧!不要仅仅因为应用程序频繁地传递字符串就存储它。您应该在应用程序的DAL中处理该问题

什么主意

使用表示需要存储的数据类型的类型存储数据。然后你的问题突然就解决了

; 否则: 您可以尝试将数据存储为浮点数,就像在另一个表中一样;尽管如果您开始需要每秒粒度,它会变得难看: 如果需要每秒粒度,请尝试将秒数存储在INT列中。
小结:您想在数据库中存储小时数,那么就这样做吧!不要仅仅因为应用程序频繁地传递字符串就存储它。您应该在应用程序的DAL中处理这个问题。

使用分钟,而不是数字数据类型

您可以通过除以60轻松地将分钟转换为小时


而且数字数据更容易查询

使用分钟代替,使用数字数据类型

您可以通过除以60轻松地将分钟转换为小时


而且数字数据更容易查询

您不应该像varchar那样存储以获得更好的输出。让我们用您的逻辑以数字或日期格式存储它们。
例如,您可以使用datetime字段进行比较。您也可以为此编写一些存储过程,但决不建议使用.NET代码中的循环或条件进行检索。

为了获得更好的输出,您不应该像varchar那样存储。让我们用您的逻辑以数字或日期格式存储它们。 例如,您可以使用datetime字段进行比较。您也可以为此编写一些存储过程,但决不建议使用.NET代码中的循环或条件进行检索