社区首页 >问答首页 >在Server中将dd.hh:mm:ss.nnnnn时间格式添加到日期时间

在Server中将dd.hh:mm:ss.nnnnn时间格式添加到日期时间
EN

Stack Overflow用户
提问于 2016-06-20 07:55:56
回答 1查看 1.5K关注 0票数 0

我有一个dd.hh:mm:ss.nnnnn格式的值。其中一些例子是32.11:45:40.9387711:45:30.32012,它们是字符串格式的。

我想要添加一个日期时间值和时间跨度以上的执行加法,这是字符串格式。30.12:43:10.98222值可以表示为30天、12小时、43分钟、10秒和98222毫秒。

我编写了以下代码(函数)以获得结果:

伪码:

代码语言:javascript
代码运行次数:0
复制
split the string split(5.11:45:40.90399, ':') and add into #temptable(id, value).

while(0 < @counter)
    select @val = value from #tempTable where id = @counter

    if (@counter = 0)
       split '5.11' in 5 and 11 by using charindex, substring, left, Convert to Int function. Also handle availability of day value
       datetimevalue = dateadd(day,5,datetimevalue)
       datetimevalue = dateadd(hour, 11, datetimevalue)

       if (@counter = 1)
           datetimevalue = dateadd(minute, 45, datetimevalue)
       if (@@counter = 2)
           split 40.90399 into 40 and 90399

       datetimevalue = dateadd(second, 40, datetimevalue)
       datetimevalue = dateadd(millisecond, 90399, datetimevalue)
End of while loop

return datetimevalue

我们能有一个替代的解决方案或一些改变简化上述过程吗?

目前,我正在考虑将hh:mm:ss部件转换为秒,并将其添加为秒,从而减少对dateadd函数的调用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-20 08:42:17

首先,要获得不能使用DateTime的精度,必须使用DateTime2

第二,正如Mayur正确的评论--您想要添加的值是时间跨度,而不是日期时间值。但是,在Sql server中不存在时间跨度数据类型,但是可以使用一些字符串操作将字符串值转换为时间跨度。

但是,我想出了一个建议的解决方案,但是这个解决方案有一个问题我无法解决:您的毫秒部分可能大于1000 (事实上是这样),所以结果似乎有点不太理想。我试过把它当作纳秒来处理,但这并没有给出我期望的结果。也许其他人可能会改进它,或者想出一个更好的方法来实现它:

首先,将时间从时间中分离出来,然后,将时间分离到它的组件中,然后,使用DateAdd将所有时间添加到原始日期:

代码语言:javascript
代码运行次数:0
复制
DECLARE @Date datetime2 = GETDATE()

DECLARE @S as varchar(20) = '32.11:45:40.93877'

;WITH CTE1 As
(
    SELECT  LEFT(@S, CHARINDEX('.', @S)-1) As TheDay,
            REPLACE(SUBSTRING(@S, CHARINDEX('.', @S) + 1, LEN(@S) - CHARINDEX('.', @S)), ':', '.') As TheTime
), CTE2 AS
(
SELECT  CAST(TheDay As int) As TheDays, 
        CAST(PARSENAME(TheTime, 4) As Int) As TheHours,
        CAST(PARSENAME(TheTime, 3) As Int) As TheMinutes,
        CAST(PARSENAME(TheTime, 2) As Int) As TheSeconds,
        CAST(PARSENAME(TheTime, 1) As Int) As TheNanoSeconds
FROM CTE1
)

SELECT  @Date As OriginalDate,
        @S As TimeSpan,
        DATEADD(DAY, TheDays, 
            DATEADD(HOUR, TheHours,
                DATEADD(MINUTE, TheMinutes,
                    DATEADD(SECOND, TheSeconds,
                        DATEADD(NANOSECOND, TheNanoSeconds, @Date)
                    )
                )
            )
        ) As Result
FROM CTE2 

结果:

代码语言:javascript
代码运行次数:0
复制
OriginalDate                TimeSpan             Result
--------------------------- -------------------- ---------------------------
2016-06-20 16:23:30.7470000 32.11:45:40.93877    2016-07-23 04:09:10.7470939
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37926852

复制
相关文章
【Flutter】Dart 泛型 ( 泛型类 | 泛型方法 | 特定类型约束的泛型 )
泛型作用 : 为 类 , 接口 , 方法 提供复用性 , 支持类型不确定的数据类型 ;
韩曙亮
2023/03/28
5.4K0
泛型类、泛型方法、类型通配符的使用
       你可以写一个泛型方法,该方法在调用时可以接收不同类型的参数。根据传递给泛型方法的参数类型,编译器适当地处理每一个方法调用。
泰斗贤若如
2019/06/19
3.8K0
ArrayList的toArray()方法为啥不利用泛型返回List的泛型类型的数组探究
有些同学提出“ArrayList的public T[] toArray(T[] a) 带参数的方法支持泛型可以返回参数类型的数组,public Object[] toArray()
明明如月学长
2021/08/31
1.6K0
ArrayList的toArray()方法为啥不利用泛型返回List的泛型类型的数组探究
【Java 泛型】泛型简介 ( 泛型类 | 泛型方法 | 静态方法的泛型 | 泛型类与泛型方法完整示例 )
泛型 可以 简单理解为 参数化类型 , 主要作用在 类 , 方法 , 接口 上 ;
韩曙亮
2023/03/29
15.4K0
【Java 泛型】泛型简介 ( 泛型类 | 泛型方法 | 静态方法的泛型 | 泛型类与泛型方法完整示例 )
Java如何优雅获取泛型类型
在 Java 开发中,获取泛型这种操作虽不是很常用,但有时确实必须的,比如 将Json 字符串反序列化成对象的时候。今天就来介绍这个操作。
Bug开发工程师
2018/12/24
12.4K0
Java如何优雅获取泛型类型
【Kotlin】泛型 ① ( 泛型类 | 泛型参数 | 泛型函数 | 多泛型参数 | 泛型类型约束 )
将 泛型参数 T 放在 尖括号 <T> 中 , 该泛型参数放在 类名后 , 主构造函数之前 , 该泛型参数 T 是 类型占位符 ,
韩曙亮
2023/03/30
2.9K0
Java如何优雅获取泛型类型
在 Java 开发中,获取泛型这种操作虽不是很常用,但有时确实必须的,比如 将Json 字符串反序列化成对象的时候。今天就来介绍这个操作。
好好学java
2019/05/06
6.7K0
Java如何优雅获取泛型类型
Java如何优雅获取泛型类型
在 Java 开发中,获取泛型这种操作虽不是很常用,但有时确实必须的,比如 将Json 字符串反序列化成对象的时候。今天就来介绍这个操作。
Spark学习技巧
2019/05/21
2.7K0
Java如何优雅获取泛型类型
C#泛型入门泛型类、泛型集合、泛型方法、泛型约束、泛型委托
给.neter们整理了一份《.NET/C#面试手册》,目前大约4万字左右,初衷也很简单,就是希望在面试的时候能够帮助到大家,减轻大家的负担和节省时间。对于没有跳槽打算的也可以复习一下相关知识点,就当是查缺补漏!
全栈程序员站长
2022/09/14
2.6K0
C#泛型入门泛型类、泛型集合、泛型方法、泛型约束、泛型委托
Java进阶:【泛型】认识泛型,泛型方法,泛型类,泛型接口和通配符
例如关于这个元素如何保存,如何管理等是确定的,因此此时把元素的类型设计成一个参数,这个类型参数叫做泛型。
冷环渊
2021/11/29
3.5K0
Java进阶:【泛型】认识泛型,泛型方法,泛型类,泛型接口和通配符
泛型方法
上一篇章我们出于类型安全的考虑,不建议使用原生类型,用List<?>代替使用,但是List<?>不允许添加除null以外的任何元素,因此我们需要使用泛型方法List<E>,如下: import jav
java达人
2018/01/31
1.3K0
【Java 泛型】泛型用法 ( 泛型类用法 | 泛型方法用法 | 泛型通配符 ? | 泛型安全检查 )
泛型类用法 : 使用时先声明泛型 , 如果不声明泛型 , 则表示该类的泛型是 Object 类型 ;
韩曙亮
2023/03/29
10.2K0
【Java 泛型】泛型用法 ( 泛型类用法 | 泛型方法用法 | 泛型通配符 ? | 泛型安全检查 )
【Kotlin】泛型总结 ★ ( 泛型类 | 泛型参数 | 泛型函数 | 多泛型参数 | 泛型类型约束 | 可变参数结合泛型 | out 协变 | in 逆变 | reified 检查泛型参数类型 )
将 泛型参数 T 放在 尖括号 <T> 中 , 该泛型参数放在 类名后 , 主构造函数之前 , 该泛型参数 T 是 类型占位符 ,
韩曙亮
2023/03/30
4.1K0
【Kotlin】泛型总结 ★ ( 泛型类 | 泛型参数 | 泛型函数 | 多泛型参数 | 泛型类型约束 | 可变参数结合泛型 | out 协变 | in 逆变 | reified 检查泛型参数类型 )
泛型方法
泛型方法 http://msdn2.microsoft.com/zh-cn/library/twcad0zb.... Service Locator with Generic Methods 泛型的Foxcop设计规则 Avoid excessive parameters on generic types Collections should implement generic interface Do not declare static members on generic types Do no
张善友
2018/01/22
7150
Java泛型基础(二)泛型接口泛型方法# 总结
泛型可以应用于同一个类,该类可以针对多种类型使用,例如构建一个RedisTemplateService组件,用于处理当前应用中所有对象的缓存操作。这篇文章主要介绍泛型应用于接口、方法和匿名内部类的一些知识点和使用案例,也包括《Java编程思想》中对应的练习题的解读。
阿杜
2018/08/06
3.3K0
Dart中的泛型方法、泛型类、泛型接口
为了能在一个方法里实现传入什么数据类型就返回什么数据类型,可以利用泛型将方法写成下面这样:
越陌度阡
2020/12/10
3.8K0
Dart中的泛型方法、泛型类、泛型接口
Java——泛型基本总结(通配符、泛型接口、泛型方法)
假如,现在定义一个表示坐标的类,Point,属性坐标x,y,但是此类设计特殊,现在由于设计特殊,现在实际使用中有可能出现以下三种结构的数据:
Winter_world
2020/09/25
3.3K1
Java——泛型基本总结(通配符、泛型接口、泛型方法)
切面获取泛型方法T的真实类型
这次是介绍一个使用了Mybatis Pro的项目中遇到的问题。Mybatis是在Spring项目中非常常见的持久层框架。在享受其带来的便利的同时,也给SeriveMock带来了新的挑战。
Antony
2021/08/06
2.4K0
在Feign接口中返回泛型类型——自定义Decoder
前几天对接了一套第三方接口,这几个第三方接口的请求地址一样,请求参数和响应结果中有很多共同的字段,所以就想把这些字段都抽出来,通过Feign定义的接口返回类型直接返回泛型。
DannyHoo
2020/06/28
8.7K0
在Feign接口中返回泛型类型——自定义Decoder
泛型与关联类型
和其他我学过的语言相比较,Rust有一些令人费解的概念。借用,所有权,借用检查这些概念大家应该已经都听说过了,我自己曾花费数小时在生命期问题上,最终不得不放弃抗争,转而采用Clone来解决。
MikeLoveRust
2020/04/07
1.3K0

相似问题

如何使方法返回泛型类型?

56

使方法返回类型为泛型

21

如何使方法的返回类型成为泛型?

76

泛型方法返回泛型类型

11

如何使方法返回泛型方法?

15
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档