Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何以DB存储时间长度_.net_Sql_Sql Server_Sql Server 2005 - Fatal编程技术网

.net 如何以DB存储时间长度

.net 如何以DB存储时间长度,.net,sql,sql-server,sql-server-2005,.net,Sql,Sql Server,Sql Server 2005,存储数据的最佳方式是什么,例如7年4个月,在数据库中有多年的经验。浮动?存储较大的秒数或刻度 在您多年经验的特定示例中,最好存储开始日期,并在读取数据库时计算时间量。存储一个大的秒数或滴答数 在您多年经验的具体示例中,最好在读取数据库时存储开始日期并计算时间量。使用long[read bigint for SQLServer]表示转换为秒的时间差。使用long[read bigint for SQLServer]要表示转换为秒的时间差,请按原样存储。也就是说,一个字符串7年4个月。 为什么?那么

存储数据的最佳方式是什么,例如7年4个月,在数据库中有多年的经验。浮动?

存储较大的秒数或刻度


在您多年经验的特定示例中,最好存储开始日期,并在读取数据库时计算时间量。

存储一个大的秒数或滴答数


在您多年经验的具体示例中,最好在读取数据库时存储开始日期并计算时间量。

使用long[read bigint for SQLServer]表示转换为秒的时间差。

使用long[read bigint for SQLServer]要表示转换为秒的时间差,请按原样存储。也就是说,一个字符串7年4个月。 为什么?那么让我们从另一个角度来思考——7年或4个月是什么?表面上人们会认为这是一个时间间隔,但事实并非如此。月份和年份中都没有固定的时间单位天数,因此实际值会因时间间隔的起点而异


谢谢所有的缺点,但事实上这是唯一一个解决问题的答案。7年4个月不是一个无起点可序列化的值。因此,表示==值。

按原样存储它。也就是说,一个字符串7年4个月。 为什么?那么让我们从另一个角度来思考——7年或4个月是什么?表面上人们会认为这是一个时间间隔,但事实并非如此。月份和年份中都没有固定的时间单位天数,因此实际值会因时间间隔的起点而异


谢谢所有的缺点,但事实上这是唯一一个解决问题的答案。7年4个月不是一个无起点可序列化的值。因此,presentation==value。

由于此字段是一个变量,处理此问题的最佳方法是存储事件的估计日期

到现在为止的时间应该在运行时计算


编辑:如果需要,还可以存储要在运行时计算中使用的结束日期。

由于此字段是一个变量,最好的方法是存储事件的估计日期

到现在为止的时间应该在运行时计算


编辑:如果需要,您还可以存储要在运行时计算中使用的结束日期。

这取决于您是否存储时间段,即开始日期和结束日期,这将成为一个可派生的值,并且您可以每次计算


如果要存储7.4以模拟一年。一个月,那么您的粒度是有限的。您永远无法显示周,如果添加7.14的值,会发生什么

这取决于,如果您存储时间段,即开始日期和结束日期,这将成为一个可派生的值,您可以每次计算


如果要存储7.4以模拟一年。一个月,那么您的粒度是有限的。您永远无法显示周,如果添加7.14的值,会发生什么

由于SQL server 2005缺少仅限时间的数据类型,因此我将使用适当大小的整数类型来保存某个时间间隔的计数-秒、毫秒等。我将执行除应用层中的比较之外的所有转换;除了作为int/bigint/etc之外,DB没有理由担心它们,因为SQL server 2005缺少仅限时间的数据类型,我将使用一个大小合适的整数类型来保存某些时间间隔的计数-秒、毫秒等。我将执行除应用层中的比较之外的所有转换;除了作为int/bigint/etc之外,DB没有理由担心它们。我认为,如果你在存储类似多年的经验,你真的不需要精确到秒。我只需要将数字存储在年份中,并将其存储为浮点数


因此,7年4个月等于7+4/12=7.333..

如果你储存了多年的经验,我认为你真的不需要精确到秒。我只需要将数字存储在年份中,并将其存储为浮点数


所以7年4个月等于7+4/12=7.333.

重复?谢谢你的回答。我想我会用int.replicate?谢谢你的回答。我想我将使用int。这对于之前结束的事件不起作用。如果我在3周前做了2个小时的实验,你的方法就行不通了——你在做不合理的假设。如果他正在存储一个事件的持续时间呢?这对于之前结束的事件不起作用。如果我在3周前做了2个小时的实验,你的方法就行不通了——你在做不合理的假设。如果他在存储事件的持续时间呢?这是一个非常糟糕的想法。当他想知道事件a比事件b花了多长时间时会发生什么?他需要解析字符串?然后他问了一个错误的问题。正确的问题是我应该存储什么而不是存储什么
我怎么知道你在说什么,所以我给你a+。我认为这个问题有点模棱两可,我不认为你给出的答案是一个很好的方法来回答我认为普拉布想问的问题,但根据所举的例子,这实际上可能是最好的建议。如果一个大的如果,基于我对全局的无知,你想静态地存储某人对工作年限的回答,而不是,比方说,根据开始日期等计算,然后允许用户输入一个字符串,比如7年4个月,并按原样存储。这是一个非常糟糕的想法。当他想知道事件a比事件b花了多长时间时会发生什么?他需要解析字符串?然后他问了一个错误的问题。正确的问题应该是我应该存储什么,而不是我如何看到你在说什么,所以我给了你一个+。我认为这个问题有点模棱两可,我不认为你给出的答案是一个很好的方法来回答我认为普拉布想问的问题,但根据所举的例子,这实际上可能是最好的建议。如果一个大的如果,基于我对全局的无知,你想静态地存储某人对工作年限的回答,而不是(比如)根据开始日期等计算答案,那么允许用户输入一个字符串,比如7年4个月,并按原样存储是有意义的。@JNK你是对的。我已经做了必要的更改,问题中没有提到SQL Server。。除了tag@JNK你是对的。我已经做了必要的更改,问题中没有提到SQL Server。。除了标签