Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.20;
Скачать: CL | DM;

Вниз

Сравнение дат   Найти похожие ветки 

 
Cat ©   (2005-03-04 13:58) [0]

Есть дата "01.01.2005". Необходимо сравнить с датой из Dbf файла, а там 05 стоит, в результате, понимается как 1905 год и сравнить невозможно (хотя одинаковые на самом деле).
Есть какие-то функции преобразования или как вообще быть ?


 
Eraser ©   (2005-03-04 14:00) [1]

Сравнивай без всяких преобразований переменные типа TDateTime.


 
Eraser ©   (2005-03-04 14:01) [2]

Сравнивай без всяких преобразований переменные типа TDateTime.


 
Cat ©   (2005-03-04 14:27) [3]

Бесполезно


 
Eraser ©   (2005-03-04 14:42) [4]

Cat ©

В этом DBF файле поле с датой имеет какой тип? TDateTime или String?


 
Cat ©   (2005-03-04 14:48) [5]

В DBF тип Date


 
kukuikar ©   (2005-03-04 14:48) [6]

StrToDate()
DateTimeToString()
DateTimeFormat()


 
Anatoly Podgoretsky ©   (2005-03-04 14:50) [7]

Cat ©   (04.03.05 13:58)  
Выбросить такую базу и перейти на обычный dBase/FoxPro


 
Cat ©   (2005-03-04 14:59) [8]

Да я б судовольствием, только клиенты такие базы присылают...


 
Eraser ©   (2005-03-04 15:04) [9]

Cat ©
Ну тогда прийдётся извращаться и вручную добавлять 100 лет )


 
Anatoly Podgoretsky ©   (2005-03-04 15:07) [10]

Cat ©   (04.03.05 14:59) [8]
Так сначала выясни в каком они формате данные присылают, возможно ты неправильно работает, но если твое [0] правда, то эта база должна была погибнуть в приказном поряде еще 1.01.2000 года, поскольку в ней проблема 2000


 
Anatoly Podgoretsky ©   (2005-03-04 15:08) [11]

Eraser ©   (04.03.05 15:04) [9]
А как ты различишь 1905 и 2005? Методом орла и решки?


 
Плохиш ©   (2005-03-04 15:19) [12]

Может в национальные настройки заглянуть? Что там стоит для интерпретации двузнаковых годов?


 
MU   (2005-03-04 15:19) [13]

доступ к Dbf-таблице через что?


 
Eraser ©   (2005-03-04 15:24) [14]

Anatoly Podgoretsky ©
А как ты различишь 1905 и 2005?


Тут уж надо смотреть, что там за данные. Если может быть и то и другое- тогда эта задача не решаема.

Плохиш ©

Так я уже спрашивал насчёт типа даты.


 
Cat ©   (2005-03-04 15:28) [15]

доступ к Dbf-таблице через что? Через компонент TDBF


 
MU   (2005-03-04 15:37) [16]

>>Через компонент TDBF
 Кто такой?


 
Cat ©   (2005-03-04 15:39) [17]

Есть такой компонентик :)


 
MU   (2005-03-04 15:41) [18]

вообще-то в Dbf дата хранится в символьном виде
в формате YYYYMMDD
посмотрите на содержимое файла, как там записана дата


 
Eraser ©   (2005-03-04 15:42) [19]

Cat ©

Сам таким компонентиком пользуюсь! Проблем с TDateTime не замечал.

Приведи участок кода, где считываешь дату из БД.


 
MU   (2005-03-04 15:46) [20]

и еще
Языки и рег. настройки посмотрите
  Краткий формат даты  .... какой?


 
Anatoly Podgoretsky ©   (2005-03-04 16:05) [21]

Eraser ©   (04.03.05 15:24) [14]
Автор уже сказал, там 05

MU   (04.03.05 15:41) [18]
С чего это ты так решил, смотрел таблицу хекс вьювером?
Как тогда быть с утверждением автора, что там не так, кто из вас неискренен?


 
MU   (2005-03-04 16:13) [22]

2 Anatoly Podgoretsky
>>С чего это ты так решил, смотрел таблицу хекс вьювером?
>>Как тогда быть с утверждением автора, что там не так, кто из >>вас неискренен?
 Смотрел много и хекс и не хекс
 Чем смотрел автор и где, не могу знать


 
Anatoly Podgoretsky ©   (2005-03-04 16:15) [23]

MU   (04.03.05 16:13) [22]
Для тебя, пример реальной базы dr.dbf

010205 Петров              Петр
...
010205 Сидоров             Сидор


 
MU   (2005-03-04 16:17) [24]

2 Anatoly Podgoretsky  
 для вас -не менне реальный
a
e  8                 e  TYP_DOC    C                  DATE_DOC   D                  NUM_DOC    C
 
              FROM       C  
              DATE_CR    C!                 TABNO      C,                  ID_REC     C2                 
0015199602128                   1                24Š%C3 0001199602131410                                 24Š%x3 0015199602128                                    24Š7&3 0001199602131410                                 24Š703 0001199602131410                                 24Š713 0001199602131410                                 24Š723 0001199602131410                                 24Š733 0001199602131410                                 24Š743 0001199602131410                                 24Š753 0001199601051348                                 24Š763 0001199601051348                                 24Š773 000119960213111111                               24Š783 000119960213111111                               24Š793 000119960213111111                               24Š7@3 0008199602292


 
Eraser ©   (2005-03-04 16:20) [25]

Открыл файл, созданный этим компонентом в старом-добром DatabaseDesktop... все даты отображаются нормально - 6.04.1985, потому что в моей программе я присваиваю их нормально, т.е.

FieldByName("Date").AsDateTime := now;


 
Eraser ©   (2005-03-04 16:20) [26]

Открыл файл, созданный этим компонентом в старом-добром DatabaseDesktop... все даты отображаются нормально - 6.04.1985, потому что в моей программе я присваиваю их нормально, т.е.

FieldByName("Date").AsDateTime := now;


 
Anatoly Podgoretsky ©   (2005-03-04 16:23) [27]

Твой пример не имеет отношение к таблице автора, у него, как у меня. Поэтому слова "вообще-то в Dbf дата хранится в символьном виде в формате YYYYMMDD" являются ересью по отношению к нему, не хранится, два человека тебе привели данные что это не так, он и я. Ну зачем нам твоя таблица, где хранится не так.
Вопрос простой, возьмем на моем примере, первая дата 1905, вторая 2005. Как определить где какая? Проблема известная, называется проблема 2000, эту проблему программисты устраивали сами для себя, говоря на наш век хватит, не хватило.


 
Anatoly Podgoretsky ©   (2005-03-04 16:27) [28]

Вы бы поделились с автором для общественным, точным форматом таблицы. Поскольку кто то из вас говорит не то. А так как ты утвердаешь в [4] и в [25] что там есть столетие, то наверно это он говорит непраду.


 
Eraser ©   (2005-03-04 16:29) [29]

Итак вопрос.
В каком формате в таблицах dbf храница информация о дате? В float, как в TDateTime или в текстовом?


 
Anatoly Podgoretsky ©   (2005-03-04 16:30) [30]

Eraser ©   (04.03.05 16:29) [29]
Вопрос ответа не имеет. Он абсолютно обсурден.
Скажи в какой кодировке файл abc


 
Eraser ©   (2005-03-04 16:32) [31]

ИМХО в этих таблицах он храница в текстовом формате, т.е. если запишешь со столетиями- будет со столетиями...


 
MU   (2005-03-04 16:35) [32]

2 Anatoly Podgoretsky ©
 :)
 Ну тогда ваше утверждение, что "нет не хранится" является ересью по отношению ко мне :)
 Значит, бывает хранится, а бывает - нет.
 На этом согласимся? Или голосование устроим?


 
Eraser ©   (2005-03-04 16:41) [33]

Я за голосование! Жаль на форуме движка голосований нету... ))


 
Anatoly Podgoretsky ©   (2005-03-04 16:42) [34]

MU   (04.03.05 16:35) [32]
Мое утверждение не является ересью, поскольку оно опирается на утверждение автора и на мой многолетний опыт, за это время я навидался много разных баз, где таблицы имели расширение .dbf
Более того даже в наше время современные базы, такие как скажем MS SQL не запрещают мне использовать это расширение или любое другое, которое я предпочту.
Пример же из реальной базы, где хранится только две цифры из года я привел, и это не редкость для старых баз.
Твои сообщения, не основаны ни на чем, в отличии от сообщений автора и Eraser, которые обладают подлинной базой, так почему бы им не привести точный ее формат. Но если утверждение насчет двух цифр истинно, то задача решение не имеет.


 
Anatoly Podgoretsky ©   (2005-03-04 16:45) [35]

Eraser ©   (04.03.05 16:41) [33]
Да давай проголосуем земля круглая или плоская. Или чему равно число ПИ в разное время года.


 
Eraser ©   (2005-03-04 16:51) [36]

))

Вот структура:
Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

00000000   03 69 03 04 02 00 00 00  A1 02 B9 03 00 00 00 00   .i......¡.¹.....
00000010   00 00 00 00 00 00 00 00  00 00 00 00 00 57 00 00   .............W..
00000020   43 4C 49 45 4E 54 5F 55  49 44 00 43 00 00 00 00   CLIENT_UID.C....
00000030   46 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   F...............
00000040   43 4F 4D 50 00 00 00 00  00 00 00 43 00 00 00 00   COMP.......C....
00000050   32 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   2...............
00000060   43 41 54 00 00 00 00 00  00 00 00 43 00 00 00 00   CAT........C....
00000070   32 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   2...............
00000080   4E 49 43 00 00 00 00 00  00 00 00 43 00 00 00 00   NIC........C....
00000090   32 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   2...............
000000A0   46 49 52 53 54 5F 4E 41  4D 45 00 43 00 00 00 00   FIRST_NAME.C....
000000B0   32 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   2...............
000000C0   4C 41 53 54 5F 4E 41 4D  45 00 00 43 00 00 00 00   LAST_NAME..C....
000000D0   32 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   2...............
000000E0   42 49 52 54 48 44 41 59  00 00 00 44 00 00 00 00   BIRTHDAY...D....
000000F0   08 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00000100   47 45 4E 44 45 52 00 00  00 00 00 4E 00 00 00 00   GENDER.....N....
00000110   01 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00000120   4C 41 53 54 5F 53 45 53  53 00 00 44 00 00 00 00   LAST_SESS..D....
00000130   08 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00000140   4C 41 53 54 5F 55 50 44  00 00 00 44 00 00 00 00   LAST_UPD...D....
00000150   08 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00000160   42 4C 41 43 4B 5F 4C 49  53 54 00 4C 00 00 00 00   BLACK_LIST.L....
00000170   01 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00000180   50 48 4F 54 4F 00 00 00  00 00 00 43 00 00 00 00   PHOTO......C....
00000190   FE 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   þ...............
000001A0   53 48 4F 57 5F 53 54 41  54 00 00 4E 00 00 00 00   SHOW_STAT..N....
000001B0   02 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
000001C0   50 4F 53 49 54 49 4F 4E  00 00 00 43 00 00 00 00   POSITION...C....
000001D0   32 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   2...............
000001E0   44 45 50 41 52 54 4D 45  4E 54 00 43 00 00 00 00   DEPARTMENT.C....
000001F0   32 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   2...............
00000200   4F 46 46 5F 50 48 4F 4E  45 00 00 43 00 00 00 00   OFF_PHONE..C....
00000210   32 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   2...............
00000220   4D 4F 42 5F 50 48 4F 4E  45 00 00 43 00 00 00 00   MOB_PHONE..C....
00000230   32 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   2...............
00000240   45 4D 41 49 4C 00 00 00  00 00 00 43 00 00 00 00   EMAIL......C....
00000250   32 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   2...............
00000260   57 57 57 00 00 00 00 00  00 00 00 43 00 00 00 00   WWW........C....
00000270   32 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   2...............
00000280   41 44 52 00 00 00 00 00  00 00 00 43 00 00 00 00   ADR........C....
00000290   32 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   2...............
000002A0   0D 2A 20 20 20 20 20 20                            .*


 
Eraser ©   (2005-03-04 16:53) [37]

Поля BIRTHDAY, LAST_SESS, LAST_UPD имеют тип D, т.е. дату, а не C, значит всётаки используется если не TDateTime, значит какой-то его аналог...


 
MU   (2005-03-04 16:54) [38]

О!!! У товарища тоже 8 знаков на дату!
 2:2


 
MU   (2005-03-04 16:58) [39]

2 Eraser ©   (04.03.05 16:53) [37]
 Вы добавтье пару записей в таблицу и посмотрите на ДАННЫЕ, а не на структуру


 
Eraser ©   (2005-03-04 17:00) [40]

Даты выгледят вот так:

Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

000007A0               32 30 30 35  30 32 30 34                   20050204

Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

00000790                                     31 39 38 35 30              19850
000007A0   34 30 36                                           406



Страницы: 1 2 вся ветка

Текущий архив: 2005.03.20;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.063 c
3-1108921984
Raul Kartes
2005-02-20 20:53
2005.03.20
БД.Delphi


14-1109154227
[wl]
2005-02-23 13:23
2005.03.20
Подскажите веб-браузер для сотового (J2ME MIDP2.0)


6-1105978696
CBOLOCH
2005-01-17 19:18
2005.03.20
Отловить новую сессию


1-1110143383
Kolan
2005-03-07 00:09
2005.03.20
Скажите на какой закладке лежит ListView ... обыскался уже?


11-1092650554
Алексей
2004-08-16 14:02
2005.03.20
Как вернуть фокус на закладки TabControl a