Как преобразовать эти значения varchar в datetime - PullRequest
0 голосов
/ 06 января 2010

Я хочу преобразовать значение varchar, которое я установил, в значение даты и времени. Я хочу загрузить строки базы данных в другую базу данных, но преобразование идет не очень хорошо.

Это мой запрос:

select Krant
       , cast(jaar as varchar(4))+'-'
          +RIGHT('0'+cast(maand as varchar(2)),2)+'-'
          +RIGHT('0'+cast(dag as varchar(2)),2) as datum
       , Inhoud as artikel
       , LEN(Inhoud)-LEN(Replace(Inhoud,' ','')) as numwords
       , 'Goirle' as vestiging 
from [Sitecore_Bibliotheekmb_Krantenknipsel].[dbo].[KRANGOI]

Приведение к датуму должно быть значением даты и времени, но я не могу заставить его работать должным образом. Когда я попытался привести к дате, это дало мне исключение out of range.

Вот результаты этого запроса:

альтернативный текст http://94.100.115.48/837450001-837500000/837478801-837478900/837478868_5_dE_7.jpeg

Я хочу, чтобы поле Datum было полем Datetime с теми же значениями, но в формате Datetime. Может ли кто-нибудь помочь мне, пожалуйста:).

Спасибо

Юнес

Ответы [ 3 ]

1 голос
/ 06 января 2010

Используйте это:

select Krant, cast(cast(jaar as varchar(4))+'-'
  +RIGHT('0'+cast(maand as varchar(2)),2)+'-'
  +RIGHT('0'+cast(dag as varchar(2)),2) as datetime) as datum, 
  Inhoud as artikel, 
  LEN(Inhoud)-LEN(Replace(Inhoud,' ','')) as numwords, 
  'Goirle' as vestiging 
from [Sitecore_Bibliotheekmb_Krantenknipsel].[dbo].[KRANGOI]
0 голосов
/ 06 января 2010

Если какая-либо из ваших дат ранее 1753 года, простого типа datetime будет недостаточно. Для этого вам необходимо использовать тип данных datetime2, представленный в SQL Server 2008.

Также убедитесь, что все значения maand и dag являются действительными днями и месяцами.

0 голосов
/ 06 января 2010

Вы не разыгрываете Varchars на Datetime

CAST и CONVERT на MSDN .

Можете ли вы попробовать это:

SELECT CAST(('2010' + '-' + '01' + '-' + '06') AS DATETIME)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...