|
|
|
переформатировать данные
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Стоит задача использовать данные заказчика и сделать update существующих записей. Речь идет о графике рабочей недели Исходные данные хранятся как character они могут быть: 0700 - 1630 6 - 2:30 6:30 am- 4:00 pm 7:30 - 5 8:30 A - 5:00 P 9:30-6 Нужно их перевести в timestamp формат. Число, месяц, год - не важны, нужно только правильные часы указать И разбить их на две колонки Код: plsql 1. 2. 3. 4. 5. 6. и т.д. Пдскажите пожалуйста, можно ли так сделать? Начинала с использования select case when regexp_like(monday_work_hours,'^[6789]?') then не смогла конвертировать в to_date ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 22:07 |
|
||
|
переформатировать данные
|
|||
|---|---|---|---|
|
#18+
Olga2018, Что-то типа: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 23:43 |
|
||
|
переформатировать данные
|
|||
|---|---|---|---|
|
#18+
Olga2018, На языке вероятного противника это называется "Garbage in, garbage out.". В общем случае задача - не решаема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 23:53 |
|
||
|
переформатировать данные
|
|||
|---|---|---|---|
|
#18+
Olga2018, сумбурный у вас подход... Должно быть как-то так: 1. Определяетесь с всеми вариантами и их шаблонами трансформации, например для простоты сразу используем регулярки оракла: Пример исходного Пример трансформации Шаблон поиска Маска часов Маска минут AM?0700 07:00 AM ^\d\d\d\d$ ^(\d\d) (\d\d)$ ^(0\d|10|11)\d\d$6 06:00 AM ^\d$ (\d) - .16 04:00 PM ^\d\d$ (\d\d) - ^(0\d|10|11)$8:30 A 08:30 AM ^\d:\d\d (A|P)$ ^(\d) \d:(\d\d) A$ 2. Составляете таблицу трансформаций: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 3. Отделяете начало и конец и трансформируете их в уже понятные hh, mi, am: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2018, 01:17 |
|
||
|
переформатировать данные
|
|||
|---|---|---|---|
|
#18+
xtender, Тут еще допиливать: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2018, 03:12 |
|
||
|
переформатировать данные
|
|||
|---|---|---|---|
|
#18+
SY, Так это же по табличке выше ясно, что это только набросок, да ещё и с ошибкой копи пасты и замены во втором left join :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2018, 04:24 |
|
||
|
переформатировать данные
|
|||
|---|---|---|---|
|
#18+
6-9 4/1/2018 6:00:00.000000 AM 4/1/2018 9:00:00.000000 AM 4/1/2018 6:00:00.000000 PM 4/1/2018 9:00:00.000000 PM 4/1/2018 6:00:00.000000 AM 4/1/2018 9:00:00.000000 PM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2018, 04:46 |
|
||
|
переформатировать данные
|
|||
|---|---|---|---|
|
#18+
982183, я так понимаю 6-9 ето в милитари формате (hh24) .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2018, 08:41 |
|
||
|
переформатировать данные
|
|||
|---|---|---|---|
|
#18+
xtender, для am 10|11 может быть 12 Код: plsql 1. 2. 3. 4. 5. 6. ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2018, 08:50 |
|
||
|
переформатировать данные
|
|||
|---|---|---|---|
|
#18+
Stax, при указании 12 без am/pm, очевидно, что это должно быть 12pm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2018, 12:06 |
|
||
|
переформатировать данные
|
|||
|---|---|---|---|
|
#18+
Staxя так понимаю 6-9 ето в милитари формате (hh24) Но у него: 7:30 - 5 4/1/2018 7:30:00.000000 AM 4/1/2018 5:00:00.000000 PM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2018, 12:14 |
|
||
|
переформатировать данные
|
|||
|---|---|---|---|
|
#18+
982183Но у него: 7:30 - 5 4/1/2018 7:30:00.000000 AM 4/1/2018 5:00:00.000000 PM А тут исходим из тoго что to_date >= from_date. SY.з ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2018, 14:05 |
|
||
|
переформатировать данные
|
|||
|---|---|---|---|
|
#18+
xtenderStax, при указании 12 без am/pm, очевидно, что это должно быть 12pm хз 12 тож ам может бить 1210-1230? зи имхо, в случае полсуток надо явно указывать рм/ам 2:30-4 ето скоко? ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2018, 14:07 |
|
||
|
переформатировать данные
|
|||
|---|---|---|---|
|
#18+
Stax12 тож ам может бить 1210-1230?отталкиваться надо от того, что адекватный человек не будет указывать двусмысленные значения. И почему тебя именно 12 задело, а не 4 например? 4 тоже может быть 4am/4pm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2018, 14:13 |
|
||
|
переформатировать данные
|
|||
|---|---|---|---|
|
#18+
xtenderStax12 тож ам может бить 1210-1230?отталкиваться надо от того, что адекватный человек не будет указывать двусмысленные значения. И почему тебя именно 12 задело, а не 4 например? 4 тоже может быть 4am/4pm из-за маски '^(0\d| 10 | 11 )\d\d$' ps я б регуляркой не решал, создал ф-циію 1) плохо знаю 2) можно лог вести .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2018, 14:36 |
|
||
|
переформатировать данные
|
|||
|---|---|---|---|
|
#18+
Staxиз-за маски '^(0\d| 10 | 11 )\d\d$'ок, ну тогда как бы ты тогда расставил AM/PM для: 0000 0100 1200 1300 2300 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2018, 14:45 |
|
||
|
переформатировать данные
|
|||
|---|---|---|---|
|
#18+
xtenderStaxиз-за маски '^(0\d| 10 | 11 )\d\d$'ок, ну тогда как бы ты тогда расставил AM/PM для: 0000 0100 1200 1300 2300 0000 --24 0100 --? 1200 --? 1300 --24 2300 --24 если AM/PM нет, считаю hh24 иначе однозначно не определить (06:00 - 11:30) можно конечно усложнять 00,13-23,stop<start и тд, но регуляркой для меня ето сложно кстати 12:30 > 10:00 и ??? ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2018, 16:27 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39636471&tid=1884088]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
79ms |
get tp. blocked users: |
2ms |
| others: | 206ms |
| total: | 383ms |

| 0 / 0 |
