Преобразование текстовой даты в SQL Server даты и времени - PullRequest
0 голосов
/ 05 января 2012

Мне нужно выбрать и вставить информацию из таблицы table1 database1 и вставить ее в table1 database2. Проблема в том, что эти записи имеют дату varchar (12 декабря 2012 г.). Я хочу преобразовать эту дату в datetime, а затем вставить ее в другую таблицу базы данных2. Как я могу это сделать?

Я делаю тест с этим кодом:

DECLARE @date nvarchar(30)
SET @date = '12 of enero of 2012'

PRINT @date
PRINT cast((REPLACE('12 of enero of 2012', 'of', '')as datetime)

Ответы [ 3 ]

1 голос
/ 05 января 2012

Вы можете просто привести его, например,

SELECT CAST(REPLACE('12 of december of 2011', 'of ', '') AS DATETIME)

, поэтому все, что вам нужно сделать для вставки, это

-- In your last update I noticed you are using Spanish
-- So you'll have to put <b>SET LANGUAGE SPANISH</b> before your query
INSERT INTO TABLE1 (MyDateTimeField)
SELECT CAST(REPLACE(MyVarCharThatContainsDateTimeField, 'of ', '') AS DATETIME)
FROM TABLE2

Обратите внимание, что это приведет к ошибке, если ваша строкане дата:

Msg 241, Level 16, State 1, Line 1
Conversion failed when converting date and/or time from character string.
0 голосов
/ 05 января 2012

На основании вашего тестового кода (и других ответов):

SET LANGUAGE Spanish

DECLARE @date nvarchar(30)
SET @date = '12 of enero of 2012'

PRINT @date
PRINT cast(REPLACE(@date, 'of', '') as datetime)
0 голосов
/ 05 января 2012

Функция CONVERT работает для преобразования этого формата даты.

convert(datetime, '12 december 2012')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...