2015-06-09 2 views
2

Мне нужно преобразовать 2014-11-18T14: 08: 43 + 00: 00, который находится в varchar в моем разработчике sql на сегодняшний день, чтобы отфильтровать несколько записей.Преобразование строки на сегодняшний день в sql

Я попытался

to_date(LAST_UPDATE_DATE,'YYYY-MM-DD')

но он дает ошибку

ORA-01830: формат дата картина заканчивается до преобразования всех входной строки.

Просьба помочь ..

+1

почему ваша дата colunm VARCHAR? –

+0

какая версия сервера sql вы используете?для меня он говорит, что to_date не распознается –

+3

SQL Server возвращает коды ошибок ORA? Очень странно. – jarlh

ответ

0

Только в случае, если вы не имели в виду, чтобы поставить сервер SQL, но вместо того, чтобы вы должны использовать оракула (видя, как вы используете TO_DATE и вы получаете исключение ORA) Я добавил быстрое преобразование DATETIME для даты и метки времени (не миллисекунд) для формата даты:

SELECT to_Date(concat 
       (substr 
       (myvar,0,10), 
       concat(' ', 
         substr(myvar,12,8) 
        ) 
       ),'YYYY-MM-DD HH24:mi:ss') AS mydate 
FROM mytable 

Fiddle

0
declare @varDate as nvarchar(50) = '2014-11-18T14:08:43+00:00' 

select CAST(substring(@varDate,0,CHARINDEX('T',@varDate)) as date) 
+3

Как синтаксис SQL-сервера может работать для базы данных Oracle? –

+0

@LalitKumarB Мне интересно то же самое, или как она получила ошибку ora, когда тегом является sql-сервер, это действительно запутанно. –

+0

было помечено ранее с 'sql'' sql-server', позже он отредактировал –

0

Вы можете попробовать это;

Select CAST ('2014-11-18T14:08:43+00:00' as date) 

Предполагается, вы в SQL Server 2012

0

ORA-01830: формат даты картина заканчивается до преобразования всей строки ввода. to_date (LAST_UPDATE_DATE, 'YYYY-MM-DD')

2014-11-18T14:08:43+00:00 является TIMESTAMP и не ДАТА.

Прежде всего, вы должны никогда никогда магазин ДАТА/TIMSTAMP, как строка. Это ошибка дизайна базы данных.

В любом случае, вы можете преобразовать его в TIMESTAMP WITH TIMEZONE.

Например,

SQL> SELECT to_timestamp_tz('2014-11-18T14:08:43+00:00', 
    2       'YYYY-MM-DD"T"HH24:MI:SS.FFTZH:TZM') 
    3       AS tm_stamp 
    4 FROM dual; 

TM_STAMP 
---------------------------------------------------------------- 
18-NOV-14 02.08.43.000000000 PM +00:00 

SQL> 
+0

Ошибка @Isha 'ORA' доказывает, что ваша база данных« Oracle », а не' sql server'. –

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