SQL DateTime添加毫秒

时间:2016-02-24 09:44:11

标签: sql-server sql-server-2008 tsql

我有两个表,一个是由一个简单的insert语句填充,另一个是使用Table-Valued Parameter(由于行数),它们都在应用程序中工作。

日期从.NET变量传递,因此它们都使用相同的值。

两者都是DATETIME NOT NULL,但是当TVP进入日期时间时,它会如下:

2016-02-24 09:40:26.647

然而,在另一张桌子上的INSERT INTO中,这就是:

2016-02-24 09:40:26.000

我需要将这些值与另一个值连接起来,将数据链接在一起,但毫秒是一个问题。

我的问题:

  • 如何从TVP中删除毫秒,或
  • 有人可以告诉我为什么TVP正在插入INSERT INTO声明只进入第二个'的全部时间。在另一张桌子?

3 个答案:

答案 0 :(得分:0)

我最终使用了以下内容:

DATEADD(ms, -(datepart(ms, RequestDT)), RequestDT)

RequestDT是我的约会对象,但是我还没有找到为什么TVP和INSERT INTO的运作方式不同。

答案 1 :(得分:0)

通过截断日期连接表格。

SELECT t1.*,t2.*
FROM table1 t1
JOIN table2 t2 ON (TO_CHAR(t1.datecolumn,'YYYYMMDDHH24MISS')=TO_CHAR(t2.datecolumn,'YYYYMMDDHH24MISS'))

答案 2 :(得分:0)

你可以用这个

CAST(FORMAT(RequestDT,'yyyy-MM-dd HH:mm:ss') AS datetime)