Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / date в строку / 7 сообщений из 7, страница 1 из 1
03.06.2020, 17:33
    #39965824
lehakarlov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
date в строку
Всем добрый день! Проясните, пожалуйста, ситуацию.
Почему так происходит:
запрос select (to_date(sysdate,'YY.MM.DD')) from dual возвращает дату 20.06.2003
но запрос select to_char(to_date(sysdate,'YY.MM.DD')) from dual возвращает 20-JUN-03
а мне надо чтобы результат был тот же, чтобы я мог делать со строкой дальнейшие манипуляции.
Помогите, пожалуйста, разобраться, заранее всем спасибо.
...
Рейтинг: 0 / 0
03.06.2020, 17:38
    #39965826
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
date в строку
Oracle Globalization Support Guide обязателен к чтению.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
03.06.2020, 17:40
    #39965829
проходил мимо...
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
date в строку
lehakarlov,

to_date возвращает дату, а to_char - строку. кажется очевидным, нет?..
...
Рейтинг: 0 / 0
03.06.2020, 17:47
    #39965831
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
date в строку
lehakarlov
Всем добрый день! Проясните, пожалуйста, ситуацию.
...
а мне надо чтобы результат был тот же, чтобы я мог делать со строкой дальнейшие манипуляции.
Помогите, пожалуйста, разобраться, заранее всем спасибо.


функция to_date принимает CHAR, а функция sysdate возвращает DATE
Код: plsql
1.
2.
3.
4.
5.
-- ваша конструкция превращается:
select (to_date(sysdate,'YY.MM.DD')) from dual
20.06.2003
select to_char(to_date(sysdate,'YY.MM.DD')) from dual
20-JUN-03
...
Рейтинг: 0 / 0
03.06.2020, 17:50
    #39965833
lehakarlov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
date в строку
Поспешил с созданием темы. Спасибо за советы, разобрался!
...
Рейтинг: 0 / 0
03.06.2020, 17:57
    #39965836
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
date в строку
Случайно отправил не готовое сообщение
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
-- ваша конструкция превращается:
select (to_date(sysdate,'YY.MM.DD')) from dual
select(
to_date(
    to_char(sysdate)  -- С форматом по умолчанию (параметр сессии NLS_DATE_FORMAT) 
   ,'YY.MM.DD'
)
20.06.2003
--
select to_char(to_date(sysdate,'YY.MM.DD'),'<параметр сессии NLS_DATE_FORMAT>') from dual
20-JUN-03



автор...
а мне надо чтобы результат был тот же, чтобы я мог делать со строкой дальнейшие манипуляции.
...


Ваши операторы имеют следующие грабли:
1) Зависят от параметров сессии ( NLS BOMB), у других пользователей настройки могут быть другие
2) Куча неявных преобразований, которые непредсказуемы

DATE - уже является DATE, вот и работайте с ним как DATE
...
Рейтинг: 0 / 0
04.06.2020, 09:40
    #39965998
lehakarlov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
date в строку
Vadim Lejnin, как раз то, что я хотел узнать, спасибо!
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / date в строку / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]