2010-01-24 2 views
-1

у меня есть этот Ttime в NVARCHAR (10): "9:52:48", и у меня есть TmpTime как датапроблема с преобразованием текста во времени в sql server 2008?

и я стараюсь, чтобы преобразовать так: «UPDATE SET MEN TmpTime = CONVERT (DATETIME , Ttime, 108)»

и я получаю в TmpTime это: "1900-01-01"

почему?

благодарственное-х заранее

+0

-1 не задавая правильный вопрос для принятого ответа – gbn

ответ

1

Если у вас также есть поле даты, вы должны конкатенировать их, прежде чем бросить:

CREATE TABLE #Sample (DateField varchar(10), TimeField varchar(10)); 
GO 

INSERT INTO #Sample VALUES ('2009-01-24', '09:52:48'); 
SELECT CONVERT(DATETIME, DateField + ' ' + TimeField) as Converted FROM #Sample 

И вы получите:

 
Converted 
----------------------- 
2009-01-24 09:52:48.000 
+0

oK, и как показать 2010-01-21 00: 00: 00.000 as 21/01/2010 и 1900-01-01 09 : 09: 18.000 as 09:09:18 – Gold

+0

Золото, это две разные вещи; у вас есть этот финал? –

0

Вы столбец определен как «дата», а затем вы отправляете только значение времени в нем

на дату порционных по умолчанию к нулю, который 1 января 1900 в SQL (в CONVERT). Затем время игнорируется для столбца даты.

Что вы ожидаете от этого?

(То же самое случится, используете ли вы или нет CONVERT или нет, потому что столбец «Дата»)

+0

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

+0

Ваш текст - время. Не дата. Какую дату вам нужно? Сегодня? Если вы хотите дату, попросите дату. Я объяснил, почему вы получаете 01 января 1900 года **, то, что вы просили ** – gbn

Смежные вопросы