2015-07-29 3 views
0

Я хочу преобразовать выбранную мной дату в формате GMT ​​и сохранить в БД.Как конвертировать дату в формат GMT с использованием oracle

Запрос:

select cast('7/1/2015 12:00:00 AM' as timestamp) AT TIME ZONE 'GMT' from dual 

Следующая ошибка возникает:

ORA-01843: not a valid month 
01843. 00000 - "not a valid month" 

Запрос отлично работает, когда месяц упоминается как января Но я не нашел какого-либо преобразования в GMT it.Similarly том, как измените месяц на MMM без изменения hh: mm: ss. Пожалуйста, помогите

+0

Что это нужно делать с C#? И есть ли какая-то причина, по которой вам нужно отправить значение в Oracle как * text * вместо значения timestamp? Также обратите внимание, что GMT не является «форматом» - это часовой пояс. (Ну, вроде. Я бы использовал UTC сам, что тоже не строго говоря, часовой пояс, а система координат, подобная часовому поясу.) –

+0

@Jon Skeet: Упомянуто C#, поскольку я нашел java, предоставляющий несколько методов для преобразования to timestamp – psobhan

+0

Хм, я не понимаю, что вы имеете в виду. Если вы имеете в виду «Я отправляю эту строку из кода C#», лучшим решением было бы выполнить преобразование * в * C# (до DateTimeOffset или DateTime), а затем отправить это значение в запрос, используя параметризованный SQL. Вы не дали нам достаточно контекста для того, что вы делаете, хотя. –

ответ

1

Попробуйте

select cast(to_date('7/1/2015 12:00:00 AM','mm/dd/yyyy hh:mi:ss AM') as timestamp) AT TIME ZONE 'GMT' from dual 
Смежные вопросы