Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Проблема с форматом года :)  [new]
Бригадир
Member

Откуда: Москва
Сообщений: 19
Подскажите пж почему запрос

автор
SELECT TO_DATE(SYSDATE, 'DD-MM-YYYY HH24:MI') R FROM DUAL


возвращает

01/02/0019

И как исправить первые две цифры года?

Спасибо.
1 фев 19, 10:52    [21799399]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1254
Бригадир,

а в чем смысл преобразовывать дату в дату?

но если по делу - то смотрите в сторону NLS-настроек сессии. Особенно, для сокращенного формата даты...
1 фев 19, 11:00    [21799407]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
oragraf
Member

Откуда: Moscow
Сообщений: 1189
Бригадир,

вот предположим, твой пол - male. приходишь ты в клинику и говоришь - хочу конвертнуть свой пол в male. Доктор - хозяин-барин! После операции - твой пол male, но не совсем то, что ты хотел.
1 фев 19, 11:01    [21799409]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
-2-
Member

Откуда:
Сообщений: 14504
Бригадир
как исправить
не ломать, тогда исправлять не придется.
1 фев 19, 11:01    [21799410]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
-2-
Member

Откуда:
Сообщений: 14504
Щукина Анна
в чем смысл преобразовывать дату в дату?
дату в строку и строку в дату.
1 фев 19, 11:02    [21799414]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1254
-2-
Щукина Анна
в чем смысл преобразовывать дату в дату?
дату в строку и строку в дату.
понятно, что вклинивается неявное преобразование. непонятно - исходное желание в проделываемых манипуляциях.
1 фев 19, 11:05    [21799416]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1254
Щукина Анна
-2-
пропущено...
дату в строку и строку в дату.
понятно, что вклинивается неявное преобразование. непонятно - исходное желание в проделываемых манипуляциях.
другими словами - а чего ан самом деле пытается сделать ТС?
1 фев 19, 11:06    [21799418]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1254
Бригадир,

а вам для подумать:
выполните в своей сессии команду:
alter session set nls_date_format = 'dd-mm-yyyy'

Затем - повторите свой запрос.

Попробуйте изменить формат даты на такое:
alter session set nls_date_format = 'yyyy-mm-dd'

Снова выполните свой запрос.
Немного подумайте и ответьте на вопрос: вы уверены, что у всех клиентов, которые будут исполнять написанный вами код, нлс-настройки будут совпадать с вашими?
1 фев 19, 11:07    [21799422]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
Бригадир
Member

Откуда: Москва
Сообщений: 19
у разных клиентов разные настройки базы куда я не лезу.
простой транк иногда ставит месяц на первое место а иногда день

например 1/02/2018 или 2/01/2018

вот я и привожу к общему виду сначала а потом в нужную строку и группрую записи по датам

нужно обязательно все это разжевывать?

нк разжевал.. так какой nls надо алтерить? ораклисты..
1 фев 19, 11:31    [21799446]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
Бригадир
Member

Откуда: Москва
Сообщений: 19
Щукина Анна
Бригадир,

а вам для подумать:
выполните в своей сессии команду:
alter session set nls_date_format = 'dd-mm-yyyy'

Затем - повторите свой запрос.

Попробуйте изменить формат даты на такое:
alter session set nls_date_format = 'yyyy-mm-dd'

Снова выполните свой запрос.
Немного подумайте и ответьте на вопрос: вы уверены, что у всех клиентов, которые будут исполнять написанный вами код, нлс-настройки будут совпадать с вашими?


Вы сами на свой вопрос и ответили.
1 фев 19, 11:33    [21799451]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1254
Бригадир
у разных клиентов разные настройки базы куда я не лезу.
простой транк иногда ставит месяц на первое место а иногда день

например 1/02/2018 или 2/01/2018

вот я и привожу к общему виду сначала а потом в нужную строку и группрую записи по датам

нужно обязательно все это разжевывать?

нк разжевал.. так какой nls надо алтерить? ораклисты..
столько гонору, да при вашем говнокодинге.....
если, как вы утверждаете, вы приводите всё к одному виду, то отчего возникает РАЗНОЕ отображение у разных клиентов?
Видимо, рекомендацию ПОДУМАТЬ вы, всё же, проигнорировали....
1 фев 19, 11:35    [21799456]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
Бригадир
Member

Откуда: Москва
Сообщений: 19
Щукина Анна
Бригадир
у разных клиентов разные настройки базы куда я не лезу.
простой транк иногда ставит месяц на первое место а иногда день

например 1/02/2018 или 2/01/2018

вот я и привожу к общему виду сначала а потом в нужную строку и группрую записи по датам

нужно обязательно все это разжевывать?

нк разжевал.. так какой nls надо алтерить? ораклисты..
столько гонору, да при вашем говнокодинге.....
если, как вы утверждаете, вы приводите всё к одному виду, то отчего возникает РАЗНОЕ отображение у разных клиентов?
Видимо, рекомендацию ПОДУМАТЬ вы, всё же, проигнорировали....


детка, говнокодинг у тебя в голове.. команду ПОДУМАТЬ оставь для своих деток.. отвечай на вопрос или иди лесом.
1 фев 19, 11:38    [21799459]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1254
Бригадир,

вам же уже -2- намекнул, что вы дату сначала (неявно) переводите в какой-то хрен пойми какой (зависит от NLS-настроек выполняющего клиента) формат строки. затем из этой строки (опять же неявно) переводите из хрен пойми какого формата (полученного на предыдущем шаге) в дату . причем, утверждая, что строка имеет ровно тот формат, который вы записали в своей форматной маске. А после - ещё и удивляетесь, что получили кривой результат.
Про выставление NLS-параметра вам было намекнуто для того, чтобы показать, что код, в общем случае, мог и не отработать. вообще. упасть с ошибкой. в зависимости от NLS-настроек клиента. а мог отработать, но выдать совершенно неправильный результат (ваш пример со вторым января и первым февраля). И тут я даже не знаю что лучше - получить неверные результат или упасть с ошибкой...
1 фев 19, 11:42    [21799465]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
Elic
Member

Откуда: 1984. Выбраковка финно-угром продолжается. КЯЗ
Сообщений: 28823
автор
TO_DATE(SYSDATE
Ты непроходимо туп.
Бригадир
отвечай на вопрос или иди лесом.
Ламерьё даже хуже, чем воинствует.


P.S. Аня, ещё не задумалась о пользе метания бисера перед свиньями?
1 фев 19, 11:43    [21799469]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1254
Бригадир
детка, говнокодинг у тебя в голове.. команду ПОДУМАТЬ оставь для своих деток.. отвечай на вопрос или иди лесом.
"не говори мне, что делать. и я не скажу - куда тебе идти..."(с)

воинствующий ламер детектед......
1 фев 19, 11:44    [21799470]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1254
Elic
P.S. Аня, ещё не задумалась о пользе метания бисера перед свиньями?
тут ведь не поймешь как лучше - молча пройти мимо или попробовать "наставить на путь истинный"...
1 фев 19, 11:46    [21799474]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
Dshedoo
Member

Откуда:
Сообщений: 280
Гуглится в первой же строке.

SELECT TO_DATE(SYSDATE, 'DD-MM-RRRR HH24:MI') R FROM DUAL
1 фев 19, 11:52    [21799480]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1254
Dshedoo,

помощник бригадира?
переложить NLS-бомбу с одного места на другое - находите это решением проблемы? ;)

1 фев 19, 11:54    [21799483]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
Elic
Member

Откуда: 1984. Выбраковка финно-угром продолжается. КЯЗ
Сообщений: 28823
Dshedoo
Гуглится в первой же строке.
SELECT TO_DATE(SYSDATE,
"Тупой и ещё тупее тупого". Сериал.
1 фев 19, 11:56    [21799484]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
Бригадир
Member

Откуда: Москва
Сообщений: 19
Щукина Анна,

еще раз рассказываю.

сотни СОТНИ клиентов на разных базах ( МС СКЛ, Оракл )

у кого-то дата хранится DD.MM.YY DD.MM.YYYY MM.DD.YYYY MM.DD.YY

что нужно делать?

1) альтерить сессию

2) если не альтерить сессию, то сначала привести дату в нужный ОБЩИЙ формат ДАТЫ DD.MM.YYYY а затем ее TRUNC чтобы получить просто дату без времени, и сгруппировать по датам..

Вот и все..

что тут не ясно.. и зачем заставлять людей все разжевывать, если Вы уже написали параметр сессии?
хотите помочь? просто помогите и все.. скажу спасибо..
что за русский стандарт - сначала говном полить, а затем съесть?
1 фев 19, 11:56    [21799485]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
Бригадир
Member

Откуда: Москва
Сообщений: 19
Elic,

сам ты дЭбил.. троль тупой.
1 фев 19, 11:58    [21799489]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
-2-
Member

Откуда:
Сообщений: 14504
Бригадир
у кого-то дата хранится DD.MM.YY DD.MM.YYYY MM.DD.YYYY MM.DD.YY
Не знаю, как в mssql, в оракле sysdate хранится в формате исполняемого кода.
1 фев 19, 12:02    [21799493]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
Dshedoo
Member

Откуда:
Сообщений: 280
Бригадир
Щукина Анна,

еще раз рассказываю.

сотни СОТНИ клиентов на разных базах ( МС СКЛ, Оракл )

у кого-то дата хранится DD.MM.YY DD.MM.YYYY MM.DD.YYYY MM.DD.YY

что нужно делать?

1) альтерить сессию

2) если не альтерить сессию, то сначала привести дату в нужный ОБЩИЙ формат ДАТЫ DD.MM.YYYY а затем ее TRUNC чтобы получить просто дату без времени, и сгруппировать по датам..

Вот и все..

что тут не ясно.. и зачем заставлять людей все разжевывать, если Вы уже написали параметр сессии?
хотите помочь? просто помогите и все.. скажу спасибо..
что за русский стандарт - сначала говном полить, а затем съесть?


Не слушай их, друг.
Они просто ещё не опытные.
Используй тот вариант, который я указал и будет тебе счастье ;)
1 фев 19, 12:03    [21799494]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
Бригадир
Member

Откуда: Москва
Сообщений: 19
-2-
Бригадир
у кого-то дата хранится DD.MM.YY DD.MM.YYYY MM.DD.YYYY MM.DD.YY
Не знаю, как в mssql, в оракле sysdate хранится в формате исполняемого кода.


у меня не SYSDATE в программе, а данные из таблицы в формате DATE
1 фев 19, 12:03    [21799496]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1254
Бригадир
...
что нужно делать?
...

Для начала нужно понять простую вещь: внутренний формат представления даты для СУБД и текстовое отображения даты для пользователя в виде строки определенного формата - это вещи, в общем случае, "взаимно перпендикулярные".
Пока вы этого не поймете - дальше двигаться в данном вопросе смысла нет...
1 фев 19, 12:03    [21799497]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
-2-
Member

Откуда:
Сообщений: 14504
Dshedoo
Гуглится в первой же строке.

SELECT TO_DATE(SYSDATE, 'DD-MM-RRRR HH24:MI') R FROM DUAL
Если записать мелкими буквами, то все получается правильно
SQL> SELECT TO_DATE(SYSDATE, 'DD-MM-RRRR HH24:MI') R, to_char(sysdate, 'yyyy-mm-dd hh24:mi') q FROM DUAL;

R               Q
--------------- ----------------
01+01=0001 1234 2019-02-01 12:03

SQL>
1 фев 19, 12:04    [21799499]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
Бригадир
Member

Откуда: Москва
Сообщений: 19
Dshedoo
Используй тот вариант, который я указал и будет тебе счастье ;)


RRRR - спасибо.. классно.
1 фев 19, 12:06    [21799504]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
Бригадир
Member

Откуда: Москва
Сообщений: 19
Щукина Анна
Бригадир
...
что нужно делать?
...

Пока вы этого не поймете - дальше двигаться в данном вопросе смысла нет...


Вы просто не умеете слушать и слышать.. я рад за Ваши познания в этом вопросе.
И тем не менее я ответ на свой вопрос получил.

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

А зачем и почему - это уже излишняя информация..

Я этому научился на международных программерских форумах, начиная с 1993 года..

И, кстати, термин "говнокод" впервые написал я на крупном в те времена форуме С++ программистов..

Так что в следующий раз ставьте это слово в кавычки.. :)

При всем при том, что я относительно вымазался в дерьме, скажу всем спасибо и особенно за RRRR
1 фев 19, 12:14    [21799513]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
-2-
Member

Откуда:
Сообщений: 14504
Бригадир
я программиист
"Программист" предполагает понимание, что в результате получается. В твоем случае, это все равно, что называть машинистку писателем.
1 фев 19, 12:21    [21799521]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 1712
Бригадир
При всем при том, что я относительно вымазался в дерьме, скажу всем спасибо и особенно за RRRR

rrrr НЕВЕРНЫЙ ответ

Если поля в таблицах имеют тип DATE,
для группировки "без времени" Вам надо использовать функцию TRUNC

зи
select ...
from ...
where ...
group by ...,trunc(my_date),...
...

.....
stax
1 фев 19, 12:38    [21799546]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
jan2ary
Member

Откуда: Киев
Сообщений: 1739
Бригадир,

Запустил SQL Developer и просто выполнил запрос, получил ошибку:
SQL> SELECT TO_DATE(SYSDATE, 'DD-MM-RRRR HH24:MI') R FROM DUAL;

Error starting at line : 2 in command -
SELECT TO_DATE(SYSDATE, 'DD-MM-RRRR HH24:MI') R FROM DUAL
Error report -
ORA-01858: a non-numeric character was found where a numeric was expected

так что будьте готовы потом к всяким сюрпризам, подземным стукам и невоспроизводимым багам.
1 фев 19, 14:22    [21799712]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
oragraf
Member

Откуда: Moscow
Сообщений: 1189
Бригадир,

тебе пытаются объяснить, что у даты нет формата
1 фев 19, 15:55    [21799849]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с форматом года :)  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 1712
oragraf
Бригадир,

тебе пытаются объяснить, что у даты нет формата


почему нет, есть

ORACLE использует для хранения дат собственный внутренний
формат. Данные дат хранятся в фиксированных полях длиной семь
байт, соответствующих веку, году, месяцу, дню, часу, минуте и
секунде.


.....
stax
1 фев 19, 16:07    [21799865]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Oracle Ответить