【问题标题】:How to output DATEADD with a specific precision?如何以特定精度输出 DATEADD?
【发布时间】:2019-05-26 02:36:52
【问题描述】:

我有一个从外部应用程序调用的过程。 该过程有一个 bigint 类型的参数 time。在该过程中,我将时间插入表中的“时间”类型的列。要将 bigint 转换为时间,我使用 DATEADD:

DATEADD(S, @piHMSTime, '19700101')

一切正常,但我在 22:59:57.0000000 时有时间在我的桌子上。 如何设置所需的精度?点后我只需要几秒钟或 2 位数。

【问题讨论】:

    标签: sql sql-server dateadd


    【解决方案1】:

    别担心。您存储的值使用内部格式。

    如果您只想查看最多秒的时间,请使用convert()

    convert(varchar(8), timecol, 114)
    

    如果列定义为time,则默认为秒(100 纳秒)的七位精度。如果您只想要几秒钟,请使用time(0)

    alter table t alter column timecol time(0);
    

    【讨论】:

    【解决方案2】:

    外部应用程序向您发送自 1970-01-01 以来的秒数。只要不改变,您就无法获得更高的精度。

    如果您可以让外部应用程序从 1970 年 1 月 1 日起经过毫秒,您可以使用显示的函数here

    【讨论】:

      猜你喜欢
      • 2020-06-02
      • 2020-06-01
      • 1970-01-01
      • 2017-03-03
      • 2012-01-22
      • 1970-01-01
      • 2015-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多