关于c#:处理和存储经过时间

关于c#:处理和存储经过时间

Handling and storing elapsed time

我在决定最好的方法是处理和存储时间测量时遇到问题。

我有一个带有文本框的应用程序,允许用户以hh:mm:ss或mm:ss格式输入时间。

因此,我打算解析此字符串,在冒号上标记它,并创建TimeSpan(或使用TimeSpan.Parse()并在mm:ss案例中添加一个" 00:")作为我的业务逻辑。 好?

我如何将其存储为数据库? 字段类型是什么? DateTime似乎是错误的。 我不想将00:54:12的时间存储为1901-01-01 00:54:12似乎有点可怜?


TimeSpan具有您可以存储的Int64 Ticks属性,以及具有Ticks值的构造函数。


对于不到一天的时间,只需使用其他人所说的几秒钟即可。

对于更长的时间,它取决于您的数据库引擎。如果是SQL Server(2008版之前的版本),则需要日期时间。没关系-您可以忽略它们全部具有的默认1/1/1900日期。如果您有幸拥有sql server 2008,那么可以使用单独的Date和Time数据类型。使用实际日期时间/时间类型的优点是可以使用DateDiff函数比较持续时间。


我认为最简单的方法就是将用户输入转换为整数秒。因此54:12 == 3252秒,因此将3252存储在数据库中或任何地方。然后,当您需要将其显示给用户时,可以再次将其转换回去。


并且int类型应该做到这一点,将其存储为秒并来回解析

http://msdn.microsoft.com/en-us/library/ms187745.aspx


使用整数秒或分钟。秒可能更好。您永远都不会为选择精度过高而自欺欺人。另外,对于您的UI,请考虑使用多个文本输入,而不必担心用户实际上是否正确键入了":"。添加其他约束(例如分钟和秒值,包含0-59)也容易得多。


您是否同时收集开始时间和停止时间?如果是这样,如果您的DBMS支持,则可以使用"时间戳"数据类型。如果不是,则作为日期/时间类型。现在,您已经说过您不希望存储日期部分-但是考虑时间段跨过午夜的情况-例如,您从23:55:01开始并在00:05:14结束-除非您还可以在那里找到日期。有标准的内置函数可返回两个日期时间值之间的经过时间(以秒为单位)。


以秒为单位的整数(或毫秒)


大多数数据库都有某种时间间隔类型。答案取决于您正在谈论的数据库。对于Oracle,它只是一个浮点数NUMBER,代表天数(包括小数天数)。您可以将其添加到任何DATE类型或从中减去,您将获得正确的答案。


推荐阅读

    linux输出字符串命令?

    linux输出字符串命令?,标准,基础,字符串,资料,简介,商业,数字,系统,命令,汉

    linux注销命令用户?

    linux注销命令用户?,系统,服务,密码,地址,工作,命令,状态,工具,信息,基础,lin

    linux命令所有用户?

    linux命令所有用户?,系统,密码,信息,情况,名称,命令,用户,时间,地址,位置,如

    linux命令进入用户?

    linux命令进入用户?,系统,密码,用户,地址,信息,软件,命令,用户名,联系方式,

    linux命令用户管理?

    linux命令用户管理?,系统,密码,管理,工作,信息,地址,工具,命令,用户,基础,LIn

    linux用户与组的命令?

    linux用户与组的命令?,管理,系统,名称,用户组,密码,用户,命令,情况,信息,单

    linux添加用户的命令?

    linux添加用户的命令?,密码,系统,软件,联系方式,用户,新增,信息,管理人员,

    linux用户退出的命令?

    linux用户退出的命令?,系统,密码,命令,用户,发行,电脑,第三,地址,软件,信息,l

    linux看系统用户命令?

    linux看系统用户命令?,系统,信息,密码,命令,服务,名称,网络,情况,软件,工具,L

    linux赋权用户命令?

    linux赋权用户命令?,系统,密码,用户,权限,地址,状态,数字,软件,管理,电脑,Lin

    linux组加用户命令?

    linux组加用户命令?,系统,密码,联系方式,用户,软件,管理,命令,用户名,用户

    linux命令中添加用户?

    linux命令中添加用户?,系统,密码,软件,用户,命令,信息,目录,用户名,账号,文

    字符串查找命令linux?

    字符串查找命令linux?,系统,字符串,工具,信息,文件,命令,字符,选项,文本,范

    linux命令更改用户?

    linux命令更改用户?,系统,密码,管理,用户,命令,环境,工作,地址,电脑,文件,lin

    linux修改用户名命令?

    linux修改用户名命令?,系统,密码,查询系统,代码,数字,用户名,命令,第三,电

    linux命令给用户授权?

    linux命令给用户授权?,系统,数字,管理,权限,命令,密码,工具,时间,软件,信息,l

    linux命令创建用户组?

    linux命令创建用户组?,系统,代码,密码,用户组,用户,命令,信息,名称,新增,管

    linux命令给用户授权?

    linux命令给用户授权?,系统,数字,管理,权限,命令,密码,工具,时间,软件,信息,l

    linux命令创建用户组?

    linux命令创建用户组?,系统,代码,密码,用户组,用户,命令,信息,名称,新增,管