2016-02-24 6 views
-1

У меня есть две таблицы, одна из которых заполняется простым вставкой, а другая - с помощью параметра Table-Valued (из-за количества строк), и оба они работают из приложения.SQL DateTime Добавление миллисекунд

Даты передаются из переменной .NET, поэтому они оба используют одно и то же значение.

Оба DATETIME NOT NULL, однако, когда TVP входит в DateTime он приходит через так:

2016-02-24 09:40:26.647 

Однако в INSERT INTO на другой таблице это происходит через как:

2016-02-24 09:40:26.000 

мне нужно чтобы объединить эти значения с другим, чтобы связать данные вместе, однако миллисекунды являются проблемой.


Мои вопросы:

  • Как я могу либо удалить миллисекунды из TVP, или
  • Может кто-нибудь сказать мне, почему TVP вставляет полное время, когда INSERT INTO заявление только входит до «второго» в другой таблице?
+0

, какую базу данных вы используете ?, один простой подход может быть ... заливкой поля даты и времени в день. Это устранит проблему за миллисекунды. –

+0

@AritraBhattacharya MS SQL 2008 – Lynchie

+0

@AritraBhattacharya Кастинг как только «DATE» избавляется от всего времени, я хочу время, просто не миллисекунды – Lynchie

ответ

0

Я закончил с использованием следующих:

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

Где RequestDT это моя дата, однако я не нашел, почему TVP и INSERT INTO и работают по-разному.

0

Соедините таблицы по усеченным датам.

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

вы можете использовать этот

CAST(FORMAT(RequestDT,'yyyy-MM-dd HH:mm:ss') AS datetime) 
Смежные вопросы