如何以特定的精度输出DATEADD?

时间:2019-05-26 02:36:53

标签: sql sql-server dateadd

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

DATEADD(S, @piHMSTime, '19700101')

一切正常,但我可以像这样在桌上坐满时间22:59:57.0000000。 如何设置所需的精度?我只需要几秒钟,或者可能需要2位数字。

2 个答案:

答案 0 :(得分:0)

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

如果您只想查看最多几秒钟的时间,请使用convert(varchar(8), timecol, 114)

time

如果该列定义为time(0),则默认值为秒数(100纳秒)的七位数精度。如果只需要几秒钟,请使用alter table t alter column timecol time(0);

import turtle

# Window settings
wn = turtle.Screen()
wn.title('Classic Pong v1.0')
wn.bgcolor('black')
wn.setup(width=800, height=600)
wn.tracer(0)

# Ball
ball = turtle.Turtle()
ball.speed(0)
ball.shape('square')
ball.color('white')
ball.penup()
ball.dx = 0.1   # Ball moves by 0.1 pixels every time
ball.dy = 0.1

# Main game loop
while True:
    wn.update()

    # Moving the ball
    ball.setx(ball.xcor() + ball.dx)    # Updates the position of the ball every time
    ball.sety(ball.ycor() + ball.dy)

    # Border collision checking
    if ball.ycor() > 290:
        ball.sety(290)
        ball.dy *= -1

    if ball.ycor() < -280:      # Set to 280 to account for extra space
        ball.sety(-280)
        ball.dy *= -1

    if ball.xcor() > 380:       # Set to 280 to account for extra space
        ball.goto(0, 0)
        ball.dx *= -1


    if ball.xcor() < -390:
        ball.goto(0, 0)
        ball.dx *= -1

答案 1 :(得分:0)

外部应用程序向您发送的时间是自1970年1月1日以来的秒数。只要这不会改变,您就无法获得更高的精度。

如果您可以使外部应用程序自1970年1月1日起经过毫秒,您可以使用here所示的功能。