|
Преобразование строки в дату | ☑ | ||
---|---|---|---|---|
0
falselight
21.03.19
✎
08:14
|
Как подобную строку преобразовать в дату???
"18.03.2019" ДАТА(НачалоОтгрузки) Пишет, преобразование к типу дата не может быть выполнено! |
|||
1
Галахад
гуру
21.03.19
✎
08:19
|
Год вперед поставь.
|
|||
2
falselight
21.03.19
✎
08:21
|
(1) А если так? то никак????
Это загрузка идет с листа. |
|||
3
falselight
21.03.19
✎
08:22
|
(1) Или програмно поставить? Как то муторно получается ((((
|
|||
4
Галахад
гуру
21.03.19
✎
08:22
|
(2) Ну да.
|
|||
5
Галахад
гуру
21.03.19
✎
08:22
|
(3) Программировать не мешки ворочать.
|
|||
6
shadow_sw
21.03.19
✎
08:23
|
разбери строку - собери дату..делов то
|
|||
7
falselight
21.03.19
✎
08:24
|
(6) Дааа, тут позаморачиваться тогда придется. На все случаи.
|
|||
8
СтарПом
21.03.19
✎
08:24
|
(3)
ДатаСЛиста = "18.03.2019" Рез = ДАТА(Число(Прав(ДатаСЛиста,4)),Число(Сред(ДатаСЛиста,4,2)),Число(Лев(ДатаСЛиста,2))); |
|||
9
Zmich
21.03.19
✎
08:25
|
(0). Попробуй так: Дата(НачалоОтгрузки + " 0:00:00");
|
|||
10
shadow_sw
21.03.19
✎
08:25
|
(8) взял сдал контору
|
|||
11
ASU_Diamond
21.03.19
✎
08:30
|
(7) это какие случаи?
|
|||
12
ASU_Diamond
21.03.19
✎
08:30
|
(8) будет работать только до 31.12.9999 :)
|
|||
13
unf13
21.03.19
✎
08:41
|
ДатаСтрокой= "18.03.2019";
МассивЧастейДаты = СтрРазделить(ДатаСтрокой,"."); Рез = ДАТА(МассивЧастейДаты[2],МассивЧастейДаты[1],МассивЧастейДаты[0]); |
|||
14
СтарПом
21.03.19
✎
08:42
|
(10) ну блин, не фотку же у него просить :)
|
|||
15
falselight
21.03.19
✎
08:56
|
(11) Ну что дата в поле может быть вбита как угодно. В поле для загрузки.
|
|||
16
shadow_sw
21.03.19
✎
08:58
|
(15) чего? у поля тип строка что ль? нельзя сделать дату?
|
|||
17
falselight
21.03.19
✎
09:06
|
(16) говорят файлы эксель могут быть какие угодно, разные
эталон не предоставили, так что приходится понимать что там может быть все что угодно |
|||
18
palsergeich
21.03.19
✎
09:27
|
(17) я бы в таких условиях сделал следующее:
Описываем изместные случаи Настраиваем логирование так, что бы при разборе с ошибкой разбора данные файла в БД не писались. Настраиваем оповещение разработчику об ошибках разбора. При наступлении события - каждый случай разбирается и вносятся доработки. Потому что ситуации когда строку в принципе в дату преобразовать нельзя вполне реальные, например ошибки ввода. Иначе эту задачу можно делать бесконечно: А месяц может вводится не числом а буквами. И не целиком, а только первые три И так далее |
|||
19
palsergeich
21.03.19
✎
09:28
|
||||
20
shadow_sw
21.03.19
✎
09:35
|
(18) ТС ответ на такое дал в (7) же
|
|||
21
palsergeich
21.03.19
✎
09:36
|
(20) дело в том, что все случаи предусмотреть невозможно)
Правильнее сделать механизм логирования |
|||
22
Serg_1960
21.03.19
✎
09:40
|
(0) А гуглить не пробовали? :(
|
|||
23
Serg_1960
21.03.19
✎
10:00
|
"дата в поле может быть вбита как угодно. В поле для загрузки" - фантазия юзверей должна быть ограничена в разумных пределах, иначе - задача не решабельная.
Пример: Дано: "01.02.2019" Вопрос: "02" - это месяц или число даты? PS: на конкретный вариант (0) оптимальный ответ дан в (9) |
|||
24
falselight
21.03.19
✎
10:09
|
(22) Я загуглился уже. Бывает клинить начинает (и не из за задач этих), не знаешь куда бежать.
Вот и иду на форум, возможно с примитивными вопросами. |
|||
25
palsergeich
21.03.19
✎
10:32
|
Как человек решавший эту задачу ещё раз скажу.
Вы можете написать идеальный алгоритм, который в демо примере будет работать быстрее всех. Но до первого названия месяца на шведском или немецком. Или до первой даты в usa формате. |
|||
26
palsergeich
21.03.19
✎
10:32
|
А это рано или поздно случится)
|
|||
27
Serg_1960
21.03.19
✎
13:30
|
(25) Точно, точно. Не одно - так другое, но обязательно случится. Обязательно найдётся умник, который исправит дату вручную в источнике и напишет месяц даты с ошибкой.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |