|
Преобразование к типу "Дата" при загрузке из Excel через ADO | ☑ | ||
---|---|---|---|---|
0
ac13
27.12.18
✎
08:59
|
Колонка с датой конечно отображается в виде даты, но совсем не той.
ПодключениеADODB = "MicrosoftJetOLEDB40";
|
|||
1
asady
27.12.18
✎
09:25
|
(0) попробуй вместо
ЗначениеЯчейки = Строка(Поле.Value); поюзать ЗначениеЯчейки = Строка(Поле.Value2); |
|||
2
ac13
10.01.19
✎
15:48
|
(1) не помогает, у меня в колонке с датой есть и другие (текстовые) значения
|
|||
3
ac13
10.01.19
✎
16:07
|
В файле экселя дата вот в таком виде 41990,5960416667
По факту это дата 18.12.2018 Загружаю в 1С, там 17.12.2014 |
|||
4
Сияющий в темноте
10.01.19
✎
16:09
|
на vbscript это vbDouble, переводится в дату просто CDate
а в 1с дата линуксовая,так что или самому считать в днях от начала даты и умножить на 86400. |
|||
5
ac13
10.01.19
✎
16:16
|
(4) не понял от начала какой даты нужно считать?
|
|||
6
ac13
10.01.19
✎
16:32
|
то, что предлагается тут Вычленение даты из строки - как лучше? так же переводит дату вместо 18.12.2018 вот это 17.12.2014
|
|||
7
Сияющий в темноте
10.01.19
✎
21:09
|
С какой точно не помню,но сразу вычисляется как CStr(CDate(1)) в том же VbScript
и понятно,что CDate(0) ничего не покажет |
|||
8
breezee
11.01.19
✎
06:03
|
(3) Если так на всех датах - просто добавьте день))
|
|||
9
spectre1978
11.01.19
✎
06:34
|
(3) вообще наличие дробной части, если я верно помню, предполагает что у этой даты есть ещё и время. Оно нужно?
|
|||
10
spectre1978
11.01.19
✎
06:53
|
Начало времен обычно 31.12.1899. с учётом того что 41990 это около 115 лет (неточно, потому что я не учел високосные года), то 2014 год кажется верной цифрой. Покорежиться этот дабл нигде не мог?
|
|||
11
Sserj
11.01.19
✎
07:18
|
А помоему можно просто
ЗначениеЯчейки = Поле.Text |
|||
12
НЕА123
11.01.19
✎
08:34
|
||||
13
NorthWind
11.01.19
✎
08:35
|
(12) А что характерно, разница между 1899 и 1904 как раз и есть оно самое! Спасибо, пригодится для общего развития. Не знал...
|
|||
14
NorthWind
11.01.19
✎
08:44
|
C++Builder:
double Src = 41990.5960416667 + 1462; // Константа из (12) Label1->Caption = TDateTime (Src).DateTimeString (); Результат: 18.12.2018 14:18:18 |
|||
15
NorthWind
11.01.19
✎
08:49
|
(3) добавь 1462 дня. Правильным подходом будет сделать в обработке настройку "использовать даты Excel для Mac" и при взведенном крыжике добавлять 1462. Иначе не добавлять.
|
|||
16
ac13
11.01.19
✎
14:45
|
Спасибо большое, очень помогли
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |