Вход | Регистрация
 

Преобразование строки в дату

Преобразование строки в дату
Я
   falselight
 
21.03.19 - 08:14
Как подобную строку преобразовать в дату???
"18.03.2019"
ДАТА(НачалоОтгрузки)

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

PS: на конкретный вариант (0) оптимальный ответ дан в (9)
   falselight
 
24 - 21.03.19 - 10:09
(22) Я загуглился уже. Бывает клинить начинает (и не из за задач этих), не знаешь куда бежать.
Вот и иду на форум, возможно с примитивными вопросами.
   palsergeich
 
25 - 21.03.19 - 10:32
Как человек решавший эту задачу ещё раз скажу.
Вы можете написать идеальный алгоритм, который в демо примере будет работать быстрее всех.
Но до первого названия месяца на шведском или немецком.
Или до первой даты в usa формате.
   palsergeich
 
26 - 21.03.19 - 10:32
А это рано или поздно случится)
   Serg_1960
 
27 - 21.03.19 - 13:30
(25) Точно, точно. Не одно - так другое, но обязательно случится. Обязательно найдётся умник, который исправит дату вручную в источнике и напишет месяц даты с ошибкой.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.