2014-09-04 11 views
0

У меня есть дату в моем запросе на выборку в ниже форматеДата в SQL Select Query

Thu Sep 04 23:03:30 GMT 2014 

и в моей дате таблицы в этом формате

13-NOV-13 03.38.22.000000000 AM 

Как я могу конвертировать в формат БД. Я пробовал использовать

TO_CHAR('Thu Sep 04 23:03:30 GMT 2014','DD-MMM-YY HH:MI:SS') 

но не работает. Любая помощь будет оценена.

+0

Зачем вам нужно, чтобы этот литерал был частью выражения select? –

+0

Затем следует изменить дату в формате GMT ​​вручную и использовать ее в моем запросе? – Deepak

+0

Что вы пытаетесь сделать? Наверное, я просто не понимаю вопроса. –

ответ

1

Это:

select to_char(timestamp '2014-09-04 23:03:30 GMT','DD-MON-YY HH:MI:SS') 
from dual 

преобразует временную метку, представленную 'Чт 4 сентября 23:03:30 GMT 2014'

в формате «DD-MON-YY HH: MI: SS» (я думаю, вы имели в виду MON, а не MMM)

Но входной буквальным должен быть изменен на '2014-09-04 23:03:30 GMT' (как показано)

Fiddle:http://sqlfiddle.com/#!4/d41d8/34741/0

Выход:

04-SEP-14 11:03:30 

Формат, который вы помещаете в свой список выбора, содержит только секунды, в то время как вы указываете, что вы храните дробные секунды в своей таблице (вероятно, поле временной метки), чтобы соответствовать этому формату использовать FF, а не SS. Кроме того, вы указываете, что используете формат HH12, а не HH (12 часов против 24 часов). Для тех, кого вы хотели бы другой формат, чем вы в настоящее время пытается преобразовать:

select to_char(timestamp '2014-09-04 23:03:30 GMT','DD-MON-YY HH12:MI:FF AM') 
from dual 

Fiddle:http://sqlfiddle.com/#!4/d41d8/34744/0

Обратите внимание, что если время были во второй половине дня он будет показывать PM, а не утра, несмотря на то, что вы видите AM в SQL (см http://www.techonthenet.com/oracle/functions/to_char.php)

Выход:

04-SEP-14 11:03:000000000 PM 
0

Попробуйте:

LEFT(DATENAME(dw,date),3) +' '+  CAST(date AS VARCHAR(20)) 
+1

Hiya, это вполне может решить проблему ... но было бы хорошо, если бы вы могли * отредактировать свой ответ * и дать небольшое объяснение о том, как и почему это работает :) Не забывайте - есть кучи новичков на Переполнение стека, и они могли бы узнать кое-что из вашего опыта - что очевидно для вас, возможно, не так для них. –

+0

@TarynEast Спасибо за информацию; В следующий раз я обязательно объясню свои ответы чуть более основательно. – ItalianStallion

+0

Вы тоже можете сделать это ... просто отредактируйте свой ответ и добавьте предложение или два :) –